主页 购物车 询价 关于我们
www.GB-GBT.com
收录标准: 222550 (2026-05-23) 搜索
路径: 主页 > GB/T > 第206页 > GB/T 28170.2-2021

[PDF] GB/T 28170.2-2021 - 英文版

标准搜索结果: 'GB/T 28170.2-2021'
标准号码美元购买PDF工期标准名称(英文版)
GB/T 28170.2-2021 1484 GB/T 28170.2-2021 <=6 信息技术 计算机图形和图像处理 可扩展三维组件(X3D) 第2部分:场景访问接口(SAI)
基本信息
标准编号 GB/T 28170.2-2021 (GB/T28170.2-2021)
中文名称
英文名称 Information technology - Computer graphics and image processing - Extensible 3D (X3D) - Part 2: Scene access interface(SAI)
行业 国家标准 (推荐)
中标分类 L81
字数估计 78,754
发布机构 国家市场监督管理总局、中国国家标准化管理委员会

GB/T 28170.2-2021 ICS 35.140 L81 中华人民共和国国家标准 信息技术 计算机图形和图像处理 可扩展三维组件(X3D) 第2部分:场景访问接口(SAI) (ISO/IEC 19775-2:2015,IDT) 2021-03-09发布 2021-10-01实施 国 家 市 场 监 督 管 理 总 局 国 家 标 准 化 管 理 委 员 会 发 布 目次 前言 Ⅰ 引言 Ⅱ 1 范围 1 2 规范性引用文件 1 3 术语和定义 2 4 概念 3 4.1 介绍 3 4.2 综述 4 4.3 绑定和协议依赖性 5 4.4 接口构建 5 4.5 事件 8 4.6 标识符 9 4.7 相关的URLs 9 4.8 执行模型 10 5 数据类型引用 16 5.1 介绍和主题 16 5.2 数据类型定义 18 5.3 错误类型 21 5.4 事件类型 23 6 服务引用 24 6.1 介绍和主题 24 6.2 创建连接 28 6.3 浏览器服务 29 6.4 执行上下文服务 40 6.5 场景服务 47 6.6 节点服务 49 6.7 域服务 50 6.8 路由服务 53 6.9 Proto类型服务 54 6.10 配置服务 56 6.11 脚本内容提供的服务 58 6.12 矩阵服务 61 7 一致性和最低支持要求 62 7.1 介绍和主题 62 7.2 一致性 64 7.3 最低要求 64 附录A(规范性附录) VRML脚本向后兼容性 71 信息技术 计算机图形和图像处理 可扩展三维组件(X3D) 第2部分:场景访问接口(SAI) 1 范围 GB/T 28170的本部分规定了可通过浏览器获得的一组标准的服务,以便用户可在场景图运行时 访问,相关访问设计用来支持与场景图的交互和修改。 2 规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文 件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 GB/T 28170.1-2011 信息技术 计算机图形和图像处理 可扩展三维组件(X3D) 第1部分: 体系结构和基础组件(ISO/IEC 19775-1:2004,IDT) Codingofaudio-visualobjects-Part1:Systems) ISO/IEC 14772-1:1997 信息技术 计算机图形与图像处理 虚拟现实建模语言 第1部分:功 ISO/IEC 14772-2:2004 信息技术 计算机图形与图像处理 虚拟现实建模语言 第2部分:外 ISO/IEC 19776-1:2015 信息技术 计算机图形、图像处理和环境数据表示 扩充3D(X3D)编码 processing and environmentaldata representation-Extensible 3D (X3D)encodings-Part 1: ISO/IEC 19776-2:2015 信息技术 计算机图形、图像处理和环境数据表示 扩充3D(X3D)编码 ClassicVRMLencoding] ding] ISO/IEC 19777-1 信息技术 计算机图形、图像处理和环境数据表示 扩充3D(X3D)语言编码 ---访问浏览器的功能; ---接收浏览器操作的通知,如无法访问的网址、启动和关闭; ---将事件发送到场景中可输入的节点字段; ---读取场景中可输出节点字段发送的最后一个值; ---当事件改变场景中节点字段的值时可获得通知。 4.2.2 与ISO/IEC 14772的兼容性 如果X3D浏览器希望符合ISO/IEC 14772-1:1997的要求,则浏览器应支持在附录A中“VRML 脚本向后兼容性”中定义的事件模型和语义,并支持GB/T 28170.1-2011所定义的功能。这种支持只 应在处理符合ISO/IEC 14772-1:1997的文件时才会被使用。 如果X3D浏览器希望符合ISO/IEC 14772-2:2004的要求,则浏览器应使用下列规则来判断内容 的有效性: a) 如果用户代码通过EAI访问浏览器,则只应加载ISO/IEC 14772-2:2004中定义的VRML文 件。如果用户代码正在通过EAI访问浏览器,那么加载符合本部分要求的文件应是一个 错误; b) 如果用户代码通过本部分中定义的外部交互所提供的能力访问浏览器,则只应加载 GB/T 28170.1-2011中定义的X3D文件。如果用户代码正在通过SAI访问浏览器,那么加 载符合ISO/IEC 14772-1:1997的文件应是一个错误。 4.3 绑定和协议依赖性 实现依赖是根据语言绑定或本部分中定义的服务的协议编码进行定义的。如果某服务被定义为实 现依赖的话,那么假如要实现时,每个绑定和编码都需要指定如何实现该服务。 对这些服务的绑定和编码可在该规范中定义它们自己的实现依赖部分。 4.4 接口构建 4.4.1 综述 在X3D浏览器中有四个可使用SAI服务进行访问的主要数据集合:浏览器、关于当前加载场景的 元数据、场景图中的节点和节点中的字段。定义和规范是以服务的形式来构造的。X3D浏览器公开了 一组允许外部应用程序与之交互的服务。为了描述这些概念,定义了一些术语。 4.4.2 用户代码 任何使用本部分定义的服务的代码都被认为是用户代码。用户代码可存在于场景图中或浏览器 外。只应使用本部分提供的服务,而非浏览器实现特定的服务。此外,这些服务既不是为浏览器编写本 地节点扩展而设计的,也不是针对其使用的。浏览器可提供自己的专用程序接口来实现不属于本部分 的本地扩展。如果代码使用专用扩展,就本部分而言,不应将其视为用户代码。 4.4.3 包含节点 包含节点是场景图中负责表示希望参与内部交互的用户代码的节点(见4.8.3内部交互)。用户代 码的生命周期应完全由包含节点来控制。当包含节点处于激活状态时,用户代码也为激活状态。当包 含节点被删除且不再被视为如GB/T 28170.1-2011中4.4.2.5对象生命周期定义的激活状态时,该节 点所包含的用户代码应被终止。用户代码不能通过保持对其包含节点的引用来延长包含节点的生命周 期。浏览器是包含节点何时不再处于激活状态的最终仲裁者。 不要求在包含节点及其用户代码之间一一对应。语言绑定可允许一个用户代码实例在包含节点的 多个实例之间共享。 4.4.4 应用程序 应用程序是外部过程,不是X3D浏览器的隐式部分。该应用程序应浏览器的请求,以某种形式连 接至X3D浏览器。应用程序既不属于GB/T 28170.1-2011中图1中定义的X3D浏览器的组成部分, 也不属于GB/T 28170.1-2011中4.4.8.3执行模型定义的执行模型的组成部分。应用程序可处于另一 台来自X3D浏览器的机器上。应用程序可负责创建一个嵌入在该应用程序中的,或者附着在已经运行 的浏览器实例上的新浏览器实例(例如,网页上的小程序)。 4.4.5 会话 会话定义用户代码和X3D浏览器之间单个连接的生命周期。一个浏览器可同时服务多个会话(例 如,一个场景中的多个脚本节点)。 一个应用程序可包含与多个浏览器的多个单独的会话,但一个脚本节点不应如此。外部应用程序 和多个X3D浏览器之间同时有多个会话是允许的。然而,独立的实现可能会对此类多个同时会话设置 一些限制。 会话不是本部分的可实现部分。它纯粹是一个概念机制,用户可通过它来请求服务。它可能在浏 览器和外部应用程序之间建立任何连接之前就存在,或者与浏览器连接请求同时建立。 4.4.6 浏览器 浏览器是一个有效X3D场景图的基本封装机制(这是时间推进的而不是存储在磁盘上的文件形式 的)。由于它包含了整个场景图,它还提供了一组最小的核心能力,用于在一个粗糙的级别上动态操纵 场景图。此场景图可能包含最多一个活跃 LayerSet节点,该节点应是此场景图的根节点(见 GB/T 28170.1-2011中4.3.2根节点)。场景中包含的使用内联节点(或通过其他方式)导入的任何其 他LayerSet节点都应忽略。 用户可能会在他们的机器上同时运行很多X3D浏览器。因此,每个浏览器应由会话中的唯一标识 符来表示。对单个浏览器实例的多个请求,该标识符应完全相同。这是为了确保访问一个浏览器实例 的两个应用程序可以一种明确的方式共享信息。 任何需要使用浏览器功能的操作都应使用浏览器标识符标识服务请求。 4.4.7 场景 场景表示单个X3D场景图和所有关于该场景图的信息。这个场景是一个X3D文件的程序化等价 物。它可包含节点、路由、原型声明、导入和导出以及一个有效的X3D文件可能包含的所有信息。在任 何给定的时间,浏览器可包含一个或多个场景。例如,一个场景使用Inline节点来包含另一个场景。 在浏览器中,场景不必是处于激活或者运行状态的。用户可构造一个未附加在浏览器实例上的新 的场景,然后程序化地填充诸如节点和路由之类的信息。这个场景可随后被直接传递到一个通用程序, 例如用于发布源文件的打印程序,或者用于替换浏览器中的当前场景。 4.4.8 节点和节点生命周期 节点是在场景图中与元素交互的最小单元。节点与GB/T 28170.1-2011中定义的X3D节点相 同。一个节点可作为一个单元从场景图中删除、存储,然后在之后的某个时间重新插入到相同会话中的 另一个位置,而不会产生不利影响。 每个节点都由唯一的标识符来定义,该标识符对于会话是唯一的。也就是说,单个浏览器可能同时 被用户代码用于在事件不是隐式唯一的情况下唯一标识此事件。标记不需要与服务请求一起传递,并 且可留作应用程序接口内部实现的一部分保存。 被应用程序引用到的节点的所有可输出字段都能被读取。读取值是该字段发送的最后一个值,或 者如果没有发送任何事件,则是该字段类型的默认值。所读取的数据特定于该字段的字段类型,并被格 式化,以适合所用的语言或协议。 4.4.10 执行上下文 执行上下文是运行时语义,等价于在GB/T 28170.1-2011中4.4.7运行时命名范围所描述的名称 范围。它提供了一种包含内部交互代码并为其加防火墙的方式,这种方式与命名空间在文件格式中提 供的限制类似。例如,当一个Proto实例中的脚本添加一个ROUTE时,该路由被添加到该proto内, 而不是添加到一般场景中。 场景是执行上下文的派生类型。当内部交互请求当前执行上下文时,返回一个场景对象。然后,用 户代码可检查该执行上下文是否为完整场景的一个实例,并且通过将其转化为对应的派生类型(如果可 用时)。 4.5 事件 4.5.1 概念 任何围绕X3D场景图的短暂数据使用都是通过事件来完成的。应用程序可注册从X3D场景图中 接收事件,并可发起新的事件。事件被认为是短暂的,只有在特定的行为发生时才产生。事件不应被存 储,也不应被交付给那些在事件发生时并未对该事件表示兴趣的各方。 示例:一个在加载后才与浏览器连接的应用程序不应交付Initialize事件。 4.5.2 浏览器内部 应用程序可将值写入字段或从字段中读取值。在X3D浏览器内部表示并标记时间戳之前,此值不 会成为事件。浏览器与应用程序的边界是事件停止的位置。事件不能从X3D浏览器外部存在;也就是 说,应用程序无法插入事件级联中。可向应用程序通知事件,发起新事件,但是当通知事件时,在浏览器 内阻止当前时间戳事件级联的处理时,不能处理和传递事件。允许记录事件以用于分析目的。 在创建级联之前不会生成事件。如果内部交互直接写入另一个节点的可输出字段,则不会生成任 何事件,因此不会形成事件级联的一部分。如果内部交互写入包含节点的可输入字段,则如果该字段是 来自其他地方的ROUTE的主题,则形成具有写入值的事件。 4.5.3 浏览器到外部应用程序 4.5.3.1 综述 浏览器可通过自己的一系列事件直接与外部应用程序通信。这些事件用于指示浏览器的状态或一 些异步问题。可用的事件的数量和类型将依赖于实现。至少,遵循本部分的所有实现都应提供以下 事件。 应保证从浏览器到外部应用程序的事件传递。 4.5.3.2 初始化 初始化事件用于指示浏览器已经在初始化过程中运行了一个场景(浏览器已经加载了世界,就在它 即将发布其第一个与时间相关的事件之前)。此时,节点标识符将从场景的getNode服务中获得(见 6.4.7getNode)。 初始化事件应立即在浏览器中生成并交付给应用程序。该事件被认为是异步的。也就是说,事件 的交付(以及任何实现依赖确认方案)都不应延迟浏览器启动执行模型评估的时间。 4.5.3.3 关闭 关闭事件用于表示浏览器将停止运行当前场景。这可能发生在许多不同的条件下: a) 场景正在被替换(见6.3.12replaceWorld和6.3.14loadURL); b) 浏览器本身正在退出; c) 客户端应用程序已经处理了它与浏览器的连接(见6.3.25dispose)。 关闭事件应立即在浏览器中生成并交付给应用程序。该事件被认为是异步的。也就是说,事件的 交付(以及任何依赖实现的确认方案)都不会延迟浏览器停止执行模型评估和关闭浏览器资源,除非需 要确保事件交付应用程序。 4.5.3.4 无可用的URL SAI_BROWSER_URL_ERROR事件用于通知应用程序,浏览器无法在loadURL服务的一个 异步调用中加载任何URL/URNs(见6.3.14loadURL)。这表示无法从此调用中指定的任何URL 加载或调用有效内容。其他调用可能涉及其他异步负载的调用,比如replaceWorld(见6.3.12 指定的任何X3DUrlNode的加载问题,例如,内联,纹理和EXTERNPROTO,尽管不是必需的。 4.5.3.5 连接中断 连接丢失的错误被用来通知应用程序,底层实现已经丢失了浏览器和应用程序之间的连接,从而导 致服务请求不能被授予。例如,一个TCP网络连接超时或其他类似的问题。 如果实现执行了一些自动的重新连接尝试,那么实现可能会延迟发送连接丢失的事件。它只会在 被认为不可能连接到浏览器的时候发送。在此事件生成后,不需要强制重新建立连接,也不需要尝试任 何形式的自动重新连接功能。 4.6 标识符 标识符的构成依赖于实现。在某些情况下,将节点标识符表示为整个节点(包括所有字段信息)可 能更有效。然后在本地节点上进行字段信息的请求。在其他实现中,标识符可能只是一个简单的整数。 确保标识符唯一是浏览器的重要职责,这样应用程序可在合理的环境约束下共享数据。对该环境的约 束可指定为在附加的附录中定义的独立实现的一部分。 使用不同服务实现的两个应用程序在浏览器环境之外交换数据是不合理的。 4.7 相关的URLs GB/T 28170.1-2011中的9.2.2相对URLs指定了在浏览器环境中处理相对URL的规则。声明 文件应被定义为浏览器中当前加载领域的基本URL。当前加载的领域可通过getWorldURL服务的请 求获得(见6.4.6getWorldURL)。在浏览器还没有加载X3D文件的情况下,应将基本文档目录作为浏 览器的当前工作目录。当浏览器是web页面的一部分时,当前的工作目录应被视为嵌入web浏览器的 页面的基本URL。 当生成嵌套的相对URLs(例如包含对脚本文件的引用的EXTERNPOTO)时,根据GB/T 28170.1- 2011解析顶层RURL基础。 4.8 执行模型 4.8.1 交互类型综述 因为SAI实现了外部应用程序和脚本的编程接口的角色,所以执行模型能在这两种情况下工作。 尽管两种情况下的API调用都是相同的,对每个服务请求的运行时评估可能不同。 示例:在脚本中服务字段更改通知将停止当前事件级联,但对于外部应用程序则不应如此。 该规范定义了服务可参与的两种交互类型:内部(即脚本)和外部(应用程序)。 4.8.2 事件模型评估顺序 脚本代码允许用户通过自定义行为修改场景图。为了达到一致的效果,在GB/T 28170.1-2011 中4.4.8.3执行模型中定义的评估顺序被扩展到包含脚本所允许的服务交互。当提供内部交互代码时, 应按以下顺序来评估事件模型的所有方面。 ---基于当前绑定视点的位置和方向来更新相机; ---评估传感器输入; ---从缓冲区收集外部输入并传递到节点; ---调用场景中所有活动脚本节点的prepareEvents脚本服务; ---评估路线; ---在已收到set_url事件或正在从场景中删除的脚本上调用关闭服务; ---为任何从场景中移除的传感器生成最终事件; 中所定义从步骤6中的任何脚本执行; ---调用eventsprocessing脚本服务,用于发送在步骤6中生成的事件的脚本; ---为新加载的内部交互代码调用初始化服务; ---如果从步骤5到10生成任何事件,请转到步骤5并继续直到完成当前事件级联。 如果内部交互向本部分定义的对象注册任何形式的回调或侦听功能......

英文网页English: GB/T 28170.2-2021

相关标准: GM/T 0132|GB/T 44247|GB/T 44020|GB/T 28170.1|