Monitors the progress and success of downloading URL elements over a network.
Action not implemented for this node.
More...
#include <Inventor/VRMLnodes/SoVRMLLoadSensor.h>
Public Member Functions | |
virtual SoType | getTypeId () const |
SoVRMLLoadSensor () | |
Static Public Member Functions | |
static SoType | getClassTypeId () |
static void | enableEvents (SbBool OnOffFlag) |
static SbBool | isEventsEnabled () |
Public Attributes | |
SoSFBool | enabled |
SoSFTime | timeOut |
SoMFNode | watchList |
SoSFBool | isActive |
SoSFBool | isLoaded |
SoSFTime | loadTime |
SoSFFloat | progress |
See the X3D Specification, below.
NOTE: This class does not exist in Open Inventor 10.0 and later.This section may reference portions of the X3D specification that are not present in this help file. The complete X3D spec is available at http://www.web3d.org .
The LoadSensor monitors the progress and success of downloading URL elements over a network. Only nodes that contain a valid URL field may be specified in the watchList field. Multiple nodes may be watched with a single LoadSensor.
The timeOut field specifies the maximum time for which the LoadSensor will monitor loading, starting from when the sensor becomes active. A value of 0 for the timeOut field indicates an indefinite time out period; i.e., the LoadSensor will wait until loading has completed either with success or failure.
The watchList field contains one or more URL objects to monitor. Only nodes that contain a valid URL field may be specified as elements of watchList. If multiple values are specified for this field, output events are generated only when all of the children have loaded or at least one has failed. If individual load status information is desired for different nodes, multiple LoadSensor nodes may be used, each with a single watchList element.
The isActive field generates events when loading of the LoadSensor's watchList elements begins and ends. An isActive TRUE event is generated when the first element begins loading. An isActive FALSE event is generated when loading has completed, either with a successful load of all objects or a failed load of one of the objects, or when the timeout period is reached as specified in the timeOut field.
The isLoaded field generates events when loading of the LoadSensor's watchList has completed. An isLoaded TRUE event is generated when all of the elements have been loaded. An isLoaded FALSE event is generated when one or more of the elements has failed to load, or when the timeout period is reached as specified in the timeout field.
The loadTime event is generated when loading of the LoadSensor's watchList has successfully completed. If loading fails or the timeout period is reached, a loadTime event is not generated.
The progress field generates events as loading progresses. The value of progress is a floating-point number between 0 and 1 inclusive. A value of 1 indicates complete loading of all watchList elements. The exact meaning of all other values (i.e., whether these indicate a percentage of total bytes, a percentage of total number of files, or some other measurement) and the frequency with which progress events are generated are browser-dependent. Regardless, the browser must in all cases guarantee that a progress value of 1 is generated upon successful load of all URL objects.
The following example defines a LoadSensor that monitors the progress of loading two different ImageTexture nodes:
Shape { appearance Appearance { material Material { texture DEF TEX1 ImageTexture { url "Amypic.png" } } } geometry Sphere {} } Shape { appearance Appearance { material Material { texture DEF TEX2 ImageTexture { url "Bmypic.png" } } } geometry Sphere {} } DEF LS LoadSensor { watchList [ USE TEX1, USE TEX2 ] } ROUTE LS.loadTime TO MYSCRIPT.loadTime
The events this would generate are:
Success of all children:
isLoaded = true
loadTime = now
progress = 1
isActive = false
Timeout of any children, failure of any children, or no network present:
isLoaded = false
isActive = false
For watchList elements that allow dynamic reloading of their contents, any reload of that element (EXAMPLE changing the url field of an ImageTexture or setting the load field of an Inline), resets the LoadSensor so that it monitors those elements based on the new values and resets its timeout period if one was specified.
For streamed media types, the first frame of data available means successful load of the URL object (i.e., the browser can render one frame of a movie or start playing an audio file).
enabled | TRUE |
timeOut | 0 |
watchList | [] |
metadata | NULL |
SoSFBool | set_enabled |
SoSFTime | set_timeOut |
SoMFNode | set_watchList |
SoSFNode | set_metadata |
SoSFBool | isActive |
SoSFBool | isLoaded |
SoSFTime | loadTime |
SoSFFloat | progress |
SoSFBool | enabled_changed |
SoSFTime | timeOut_changed |
SoMFNode | watchList_changed |
SoSFNode | metadata_changed |
SoVRMLLoadSensor::SoVRMLLoadSensor | ( | ) |
Constructor.
static void SoVRMLLoadSensor::enableEvents | ( | SbBool | OnOffFlag | ) | [static] |
Enables/disables events for all SoVRMLLoadSensor objects.
If you have created several objects of this class, you can disable/enable events for all of them with a single call to this method.
static SoType SoVRMLLoadSensor::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoVRMLNode.
virtual SoType SoVRMLLoadSensor::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from SoVRMLNode.
static SbBool SoVRMLLoadSensor::isEventsEnabled | ( | ) | [static] |
Queries if events are enabled for all objects of this class.
Enables (TRUE) or disables (FALSE) the sensor.
Output event.
Output event.
Output event.
Output event.
The timeOut field specifies the maximum time for which the LoadSensor will monitor loading, starting from when the sensor becomes active.
A value of 0 for the timeOut field indicates an indefinite time out period; i.e., the LoadSensor will wait until loading has completed either with success or failure.
The watchList field contains one or more URL objects to monitor.
Only nodes that contain a valid URL field may be specified as elements of watchList. If multiple values are specified for this field, output events are generated only when all of the children have loaded or at least one has failed. If individual load status information is desired for different nodes, multiple LoadSensor nodes may be used, each with a single watchList element.