The primary objectives of the specifications in this clause are:
Due to the nature of this Part, it is not possible to specify the conformance tests of an individual language bindings to the specification. Separate Conformance sections shall be provided within each language that provide the necessary information to implement language specific binding conformance tests.
A concept of base profile conformance is defined to ensure interoperability of VRML applications and VRML browsers. Base profile conformance is based on a set of limits and minimal requirements. Base profile conformance is intended to provide a functional level of reasonable utility for VRML language bindings while limiting the complexity and resource requirements of VRML browsers. Base profile conformance may not be adequate for all uses of the SAI.
A language binding must at a minimum implement the service requirements outlined in 7.3.2 Base Profile. It may also define its own optional set of minimum requirements that are no less than the requirements of this section. A browser implementation must, in addition to the base support profile, also support the minimum capabilities defined in 7.3.2 Base Profile. In general, the browser requirements are specified as more general requirements with the underlying representation that specific language issues.
Where a browser implements two or more langauge bindings with different levels of minimum requirements, the browser must support the minimum requirements for each language separately. Therefore, if one language has higher requirements, the lower requirements of the other shall not be used.
For all these requirements it shall be assumed that the language binding
shall provide complete implementation of all the parameters required for
the individual services. Language bindings of data types may be implemented
as primitive types in the target language rather than separate data types.
Table 7.2 indicates where this may be permitted.
Item | Binding Support | Minimum Browser Support |
---|---|---|
SAIAction | Full support as required by the individual service request | As defined by the language |
SAIBrowserApp | Full Support if createBrowser supported.
Not required if only getBrowser supported. |
Optional (based on getBrowser/createBrowser requirements) |
SAIBrowserName | Primitive Type | n/a |
SAIBrowserRef | Full Support | Full Support |
SAIBrowserVersion | Primitive type | n/a |
SAIFieldAccess | Separate data types for the four types defined by ISO/IEC 14772-1. | Full Support |
SAIFieldID | Full Support | Full Support |
SAIFieldName | Primitive type | Full Support |
SAIFieldType | Separate data types for all types defined in ISO/IEC 14772-1, 5 Field and Event Reference | Full Support |
SAIFieldValue | Primitive type as appropriate to the given field.
Where field is an SF/MFNode shall be SAINodeID |
Number of values for setting and getting defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile |
SAIFrameRate | Primitive Type | n/a |
SAINavSpeed | Primitive Type | n/a |
SAINodeID | Full Support | Full Support |
SAINodeType | Primitive type | SAIString representation of the node name |
SAIParameterList | As required by langauge and service definition. | Dependent on language and browser implementation |
SAIPropertyList | Primitive type | 5 key value pairs. Values dependent on language bindings |
SAIRequesterID | Full Support | n/a |
SAIURL | Both URL and URN support | See ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile, all url fields |
SAIString | Primitive Type | n/a |
SAIError | Separate types for each error condition that may occur as defined in 5.3 Error Types. | Generate error conditions as appropriate. |
Establishing a Connection | ||
getBrowser, createBrowser | At least one of getBrowser or createBrowser services shall be provided. | At least one method of connection with a browser shall be provided.
Unsupported connection methods shall throw an error.
Ignore SAIParameterList |
Browser Services | ||
Browser getName | Shall provide | Return NULL if not supported |
getVersion | Shall provide | Return NULL if not supported. |
getCurrentSpeed | Shall provide | Return 0.0 if not supported |
getCurrentFrameRate | Shall provide | Return 0.0 if not supported |
getWorldURL | Shall provide | Full Support |
replaceWorld | Full support | 500 SAINodeIDs set in single call. See ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile, all groups |
loadURL | Shall provide | Full support. Ignore SAIPropertyList parameter values. |
setDescription | Shall provide | No restriction |
createVrmlFromString | Shall provide | Support File Limits as defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile. |
createVrmlFromURL | Shall provide | Support File Limits as defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile. |
Dynamic Route Handling | SAIActions of add and delete route | Full support. |
Update Control | SAIActions of start buffering and end buffering | Full support |
Register Browser Interest | SAIActions of add and remove interest. | Events for initialisation, shutdown, invalid URLs and connection lost. |
getNode | Full Support | Full Support |
dispose | Shall provide | No restrictions |
Node Services | ||
getName | Shall provide | Full support |
getType | Shall provide | no restrictions |
getField | Full Support | field, eventIn and eventOut fields shall be accesible. |
dispose | Shall provide | No restrictions |
Field Services | ||
getAccessType | Shall provide | Full support |
getType | see SAIFieldType | Full support |
getName | Not Required | Field name without set_ or _changed modifiers |
getValue | Full support | Full Support |
setValue | Full support | Full Support. Where fields are MF fields, minimum number of values to be supported defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile |
Register Field Interest | SAIActions of add and remove interest
eventOut and the output side of exposedFields shall be supported |
As per supported langauge binding(s). |
http://www.vrml.org/Specifications/VRML97/part2/conformance.html