Package org.web3d.x3d.sai.Geospatial
Interface GeoViewpoint
- All Superinterfaces:
X3DBindableNode
,X3DChildNode
,X3DNode
,X3DViewpointNode
- All Known Implementing Classes:
GeoViewpoint
GeoViewpoint specifies viewpoints using geographic coordinates.
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.
GeoViewpoint node tooltip: [X3DViewpointNode] GeoViewpoint specifies viewpoints using geographic coordinates. GeoViewpoint can contain a GeoOrigin node. Since GeoViewpoint must navigate smoothly inside a curved geographic coordinate system, it includes both Viewpoint and NavigationInfo attributes.
- Hint: alternatively can use GeoLocation or GeoTransform as parent of a Viewpoint node to orient geospatial views.
- Hint: include <component name='Geospatial' level='1'/>
- Hint: when a GeoViewpoint node is bound, it also overrides the currently bound NavigationInfo node in the scene and controls user navigation for smoother geospatial interaction.
- Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.
- Hint: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.
- Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.
- Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.
- Warning: GeoViewpoint navType and headlight fields were removed as part of X3D version 3.3, authors can instead use a NavigationInfo node for those fields in prior X3D versions 3.0, 3.1 or 3.2. Upgrading such legacy scenes to version 3.3 or greater is preferred and recommended.
- Hint: Regardless of viewpoint jump value at bind time, the relative viewing transformation between user's view and defined position/orientation is stored for later use when un-jumping (returning to the viewpoint when subsequent viewpoint is unbound).
- Hint: customizable design pattern for dedicated Viewpoint/NavigationInfo pair: <Viewpoint DEF='SpecialView'/> <NavigationInfo DEF='SpecialNav'/> <ROUTE fromNode='SpecialView' fromField='isBound' toNode='SpecialNav' toField='set_bind'/>
- Warning: avoid having GeoLocation or GeoTransform as a parent or ancestor node of GeoViewpoint, since multiple geospatial transformations then occur with unpredictable results.
- Hint: X3D Scene Authoring Hints, Viewpoints https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints
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 TypeMethodDescriptiondouble
Provide double value in seconds from outputOnly SFTime field named bindTime.double[]
Provide array of 3-tuple double results unit axis, angle (in radians) from inputOutput SFVec3d field named centerOfRotation.Provide String value from inputOutput SFString field named description.float
Provide float value from inputOutput SFFloat field named farDistance.float
Provide float value within allowed range of (0,3.1416) from inputOutput SFFloat field named fieldOfView.Provide org.web3d.x3d.sai.Geospatial.GeoOrigin instance (using a properly typed node) (deprecated node, optional) from initializeOnly SFNode field geoOrigin.String[]
Provide array of String results from initializeOnly MFString field named geoSystem.boolean
Provide boolean value from outputOnly SFBool field named isBound.boolean
getJump()
Provide boolean value from inputOutput SFBool field named jump.Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.Provide org.web3d.x3d.sai.Navigation.NavigationInfo instance (using a properly typed node) from inputOutput SFNode field navigationInfo.float
Provide float value from inputOutput SFFloat field named nearDistance.float[]
Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named orientation.double[]
Provide array of 3-tuple double results from inputOutput SFVec3d field named position.boolean
Provide boolean value from inputOutput SFBool field named retainUserOffsets.float
Provide float value within allowed range of [0,infinity) from initializeOnly SFFloat field named speedFactor.boolean
Provide boolean value from inputOutput SFBool field named viewAll.setCenterOfRotation
(double[] newValue) Accessor method to assign 3-tuple double array unit axis, angle (in radians) to inputOutput SFVec3d field named centerOfRotation.setDescription
(String newValue) Accessor method to assign String value to inputOutput SFString field named description.setFarDistance
(float newValue) Accessor method to assign float value to inputOutput SFFloat field named farDistance.setFieldOfView
(float newValue) Accessor method to assign float value to inputOutput SFFloat field named fieldOfView.setGeoOrigin
(GeoOrigin newValue) Accessor method to assign org.web3d.x3d.sai.Geospatial.GeoOrigin instance (using a properly typed node) to initializeOnly SFNode field geoOrigin.setGeoSystem
(String[] newValue) Accessor method to assign String array to initializeOnly MFString field named geoSystem.setJump
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named jump.setMetadata
(X3DMetadataObject newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.setNavigationInfo
(NavigationInfo newValue) Accessor method to assign org.web3d.x3d.sai.Navigation.NavigationInfo instance (using a properly typed node) to inputOutput SFNode field navigationInfo.setNearDistance
(float newValue) Accessor method to assign float value to inputOutput SFFloat field named nearDistance.setOrientation
(float[] newValue) Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named orientation.setPosition
(double[] newValue) Accessor method to assign 3-tuple double array to inputOutput SFVec3d field named position.setRetainUserOffsets
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named retainUserOffsets.setSpeedFactor
(float newValue) Accessor method to assign float value to initializeOnly SFFloat field named speedFactor.setViewAll
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named viewAll.
-
Method Details
-
getBindTime
double getBindTime()Provide double value in seconds from outputOnly SFTime field named bindTime.
Tooltip: Event sent reporting timestamp when node becomes active/inactive.- 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:
getBindTime
in interfaceX3DBindableNode
- Specified by:
getBindTime
in interfaceX3DViewpointNode
- Returns:
- value of bindTime field
-
getCenterOfRotation
double[] getCenterOfRotation()Provide array of 3-tuple double results unit axis, angle (in radians) from inputOutput SFVec3d field named centerOfRotation.
Tooltip: centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode. *- Returns:
- value of centerOfRotation field
-
setCenterOfRotation
Accessor method to assign 3-tuple double array unit axis, angle (in radians) to inputOutput SFVec3d field named centerOfRotation.
Tooltip: centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode. *- Parameters:
newValue
- is new value for the centerOfRotation field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getDescription
String getDescription()Provide String value from inputOutput SFString field named description.
Tooltip: Author-provided prose that describes intended purpose of this node.- Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.
- 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 interfaceX3DViewpointNode
- 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 this node.- Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.
- 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 interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the description field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getFarDistance
float getFarDistance()Provide float value from inputOutput SFFloat field named farDistance.
Tooltip: or (0,+infinity) farDistance defines maximum clipping plane distance allowed for object display.- Hint: overrides bound NavigationInfo visibilityLimit value, if any.
- Hint: default value -1 means no effect on currently defined view frustum boundaries.
- Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics)
- Warning: nearDistance must be less than farDistance.
- Specified by:
getFarDistance
in interfaceX3DViewpointNode
- Returns:
- value of farDistance field
-
setFarDistance
Accessor method to assign float value to inputOutput SFFloat field named farDistance.
Tooltip: or (0,+infinity) farDistance defines maximum clipping plane distance allowed for object display.- Hint: overrides bound NavigationInfo visibilityLimit value, if any.
- Hint: default value -1 means no effect on currently defined view frustum boundaries.
- Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics)
- Warning: nearDistance must be less than farDistance.
- Specified by:
setFarDistance
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the farDistance field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getFieldOfView
float getFieldOfView()Provide float value within allowed range of (0,3.1416) from inputOutput SFFloat field named fieldOfView.
Tooltip: Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller). Small field of view roughly corresponds to a telephoto lens, large field of view roughly corresponds to a wide-angle lens. *- Returns:
- value of fieldOfView field
-
setFieldOfView
Accessor method to assign float value to inputOutput SFFloat field named fieldOfView.
Tooltip: Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller). Small field of view roughly corresponds to a telephoto lens, large field of view roughly corresponds to a wide-angle lens. *- Parameters:
newValue
- is new value for the fieldOfView field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getGeoOrigin
GeoOrigin getGeoOrigin()Provide org.web3d.x3d.sai.Geospatial.GeoOrigin instance (using a properly typed node) (deprecated node, optional) from initializeOnly SFNode field geoOrigin.
Tooltip: [GeoOrigin] Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.- Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/geospatial.html#high-precisioncoords
- Warning: XML validation requires placement as first child node following contained metadata nodes (if any).
- Returns:
- value of geoOrigin field
-
setGeoOrigin
Accessor method to assign org.web3d.x3d.sai.Geospatial.GeoOrigin instance (using a properly typed node) to initializeOnly SFNode field geoOrigin.
Tooltip: [GeoOrigin] Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.- Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/geospatial.html#high-precisioncoords
- Warning: XML validation requires placement as first child node following contained metadata nodes (if any).
- Parameters:
newValue
- is new value for the geoOrigin field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getGeoSystem
String[] getGeoSystem()Provide array of String results from initializeOnly MFString field named geoSystem.
Tooltip: Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM). Supported values: "GD" "UTM" or "GC" followed by additional quoted string parameters as appropriate for the type.- Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/geospatial.html#Spatialreferenceframes
- Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/geospatial.html#Specifyinggeospatialcoords
- Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system
- Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).
- Returns:
- value of geoSystem field
-
setGeoSystem
Accessor method to assign String array to initializeOnly MFString field named geoSystem.
Tooltip: Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM). Supported values: "GD" "UTM" or "GC" followed by additional quoted string parameters as appropriate for the type.- Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/geospatial.html#Spatialreferenceframes
- Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/geospatial.html#Specifyinggeospatialcoords
- Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system
- Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).
- Parameters:
newValue
- is new value for the geoSystem field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getIsBound
boolean getIsBound()Provide boolean value from outputOnly SFBool field named isBound.
Tooltip: Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.- 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:
getIsBound
in interfaceX3DBindableNode
- Specified by:
getIsBound
in interfaceX3DViewpointNode
- Returns:
- value of isBound field
-
getJump
boolean getJump()Provide boolean value from inputOutput SFBool field named jump.
Tooltip: Whether to transition instantly by jumping, or else smoothly animate to this Viewpoint. *- Specified by:
getJump
in interfaceX3DViewpointNode
- Returns:
- value of jump field
-
setJump
Accessor method to assign boolean value to inputOutput SFBool field named jump.
Tooltip: Whether to transition instantly by jumping, or else smoothly animate to this Viewpoint. *- Specified by:
setJump
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the jump field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
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 interfaceX3DBindableNode
- Specified by:
getMetadata
in interfaceX3DChildNode
- Specified by:
getMetadata
in interfaceX3DNode
- Specified by:
getMetadata
in interfaceX3DViewpointNode
- 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 interfaceX3DBindableNode
- Specified by:
setMetadata
in interfaceX3DChildNode
- Specified by:
setMetadata
in interfaceX3DNode
- Specified by:
setMetadata
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the metadata field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).- See Also:
-
getNearDistance
float getNearDistance()Provide float value from inputOutput SFFloat field named nearDistance.
Tooltip: or (0,+infinity) nearDistance defines minimum clipping plane distance necessary for object display.- Hint: overrides bound NavigationInfo avatarSize value, if any.
- Hint: default value -1 means no effect on currently defined view frustum boundaries.
- Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics)
- Warning: nearDistance must be less than farDistance.
- Specified by:
getNearDistance
in interfaceX3DViewpointNode
- Returns:
- value of nearDistance field
-
setNearDistance
Accessor method to assign float value to inputOutput SFFloat field named nearDistance.
Tooltip: or (0,+infinity) nearDistance defines minimum clipping plane distance necessary for object display.- Hint: overrides bound NavigationInfo avatarSize value, if any.
- Hint: default value -1 means no effect on currently defined view frustum boundaries.
- Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics)
- Warning: nearDistance must be less than farDistance.
- Specified by:
setNearDistance
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the nearDistance field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getOrientation
float[] getOrientation()Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named orientation.
Tooltip: Rotation of Viewpoint, relative to default -Z axis direction in local coordinate system.- Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.
- Hint: this is orientation _change_ from default direction (0 0 -1) +Y axis is the up vector for the local area (the normal to the tangent plane on the ellipsoid), -Z points towards the north pole, and +X is east 1 0 0 -1.570796 always looks down.
- Specified by:
getOrientation
in interfaceX3DViewpointNode
- Returns:
- value of orientation field
-
setOrientation
Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named orientation.
Tooltip: Rotation of Viewpoint, relative to default -Z axis direction in local coordinate system.- Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.
- Hint: this is orientation _change_ from default direction (0 0 -1) +Y axis is the up vector for the local area (the normal to the tangent plane on the ellipsoid), -Z points towards the north pole, and +X is east 1 0 0 -1.570796 always looks down.
- Specified by:
setOrientation
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the orientation field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getPosition
double[] getPosition()Provide array of 3-tuple double results from inputOutput SFVec3d field named position.
Tooltip: position relative to local georeferenced coordinate system, in proper format. *- Returns:
- value of position field
-
setPosition
Accessor method to assign 3-tuple double array to inputOutput SFVec3d field named position.
Tooltip: position relative to local georeferenced coordinate system, in proper format. *- Parameters:
newValue
- is new value for the position field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getRetainUserOffsets
boolean getRetainUserOffsets()Provide boolean value from inputOutput SFBool field named retainUserOffsets.
Tooltip: Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation. *- Specified by:
getRetainUserOffsets
in interfaceX3DViewpointNode
- Returns:
- value of retainUserOffsets field
-
setRetainUserOffsets
Accessor method to assign boolean value to inputOutput SFBool field named retainUserOffsets.
Tooltip: Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation. *- Specified by:
setRetainUserOffsets
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the retainUserOffsets field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getSpeedFactor
float getSpeedFactor()Provide float value within allowed range of [0,infinity) from initializeOnly SFFloat field named speedFactor.
Tooltip: [0,+infinity) speedFactor is a multiplier to modify the original elevation-based speed that is set automatically by the browser.- Hint: speedFactor is a relative value and not an absolute speed as defined by NavigationInfo.
- Returns:
- value of speedFactor field
-
setSpeedFactor
Accessor method to assign float value to initializeOnly SFFloat field named speedFactor.
Tooltip: [0,+infinity) speedFactor is a multiplier to modify the original elevation-based speed that is set automatically by the browser.- Hint: speedFactor is a relative value and not an absolute speed as defined by NavigationInfo.
- Parameters:
newValue
- is new value for the speedFactor field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getViewAll
boolean getViewAll()Provide boolean value from inputOutput SFBool field named viewAll.
Tooltip: Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.- Hint: no collision detection or proximity sensing occurs when zooming.
- Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.
- Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs.
- Specified by:
getViewAll
in interfaceX3DViewpointNode
- Returns:
- value of viewAll field
-
setViewAll
Accessor method to assign boolean value to inputOutput SFBool field named viewAll.
Tooltip: Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.- Hint: no collision detection or proximity sensing occurs when zooming.
- Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.
- Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs.
- Specified by:
setViewAll
in interfaceX3DViewpointNode
- Parameters:
newValue
- is new value for the viewAll field.- Returns:
GeoViewpoint
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-