x3d-traverse
TypeScript icon, indicating that this package has built-in type declarations

1.0.13 • Public • Published

x3d-traverse

npm Version npm Downloads DeepScan grade

Traverse X3D nodes and scenes to filter, process and analyze nodes.

Installation

Node

npm i x3d-traverse

Browser

import traverse from "https://cdn.jsdelivr.net/npm/x3d-traverse@latest/dist/x3d-traverse.mjs";

Usage

The package can be used with CJS require or with ES6 import statement:

import X3D      from "x_ite";
import traverse from "x3d-traverse";

const Traverse = traverse (X3D);
const canvas   = X3D .createBrowser ();
const browser  = canvas .browser;
const scene    = await browser .createX3DFromURL (new X3D .MFString ("https://create3000.github.io/media/examples/Geometry3D/Box/Box.x3d"));

// Traverse all root nodes and its successors.
for (const node of scene .rootNodes .traverse ())
   console .log (node .getNodeTypeName ());

Flags

  • Traverse.NONE
  • Traverse.EXTERNPROTO_DECLARATIONS
  • Traverse.PROTO_DECLARATIONS
  • Traverse.ROOT_NODES
  • Traverse.IMPORTED_NODES
  • Traverse.EXTERNPROTO_DECLARATION_SCENE
  • Traverse.PROTO_DECLARATION_BODY
  • Traverse.PROTOTYPE_INSTANCES
  • Traverse.INLINE_SCENE
  • Traverse.ALL

Traverse

There is a method traverse on some classes listed here:

  • X3DScene.prototype.traverse
  • X3DExecutionContext.prototype.traverse
  • X3DExternProtoDeclaration.prototype.traverse
  • X3DProtoDeclaration.prototype.traverse
  • NamedNodesArray.prototype.traverse
  • ExternProtoDeclarationArray.prototype.traverse
  • ProtoDeclarationArray.prototype.traverse
  • SFNode.prototype.traverse
  • MFNode.prototype.traverse

traverse (flags?: number): Iterable <TraversedObjects>

Traverse all objects and its successors. Returns every node on its way through the scene graph tree.

The flags parameter is a number ored, for instance like this: Traverse .ROOT_NODES | Traverse .PROTO_DECLARATIONS.

The return value is an iterator with all traversed object, which can be of type:

  • X3DScene
  • X3DExecutionContext
  • X3DExternProtoDeclaration
  • X3DProtoDeclaration
  • SFNode

Traverse.traverse (object: TraverseObjects, flags?: number): Iterable <TraversedObjects>

There is also a method Traverse.traverse with an additional first argument object, which can be of type:

  • X3DScene
  • X3DExecutionContext
  • X3DExternProtoDeclaration
  • X3DProtoDeclaration
  • NamedNodesArray
  • ExternProtoDeclarationArray
  • ProtoDeclarationArray
  • MFNode
  • Array <SFNode | X3DExternProtoDeclaration | X3DProtoDeclaration>
  • SFNode

Find

There is a method find on some classes listed here:

  • X3DScene.prototype.find
  • X3DExecutionContext.prototype.find

find (object: FindObjects | Array <FindObjects>, flags?: number): Iterable <Array <FoundObjects>>

Traverse all objects and its successors. Returns an array of all paths of the object to be found.

The parameter *object can be of type:

  • X3DScene
  • X3DExecutionContext
  • X3DExternProtoDeclaration
  • X3DProtoDeclaration
  • X3DImportedNode
  • X3DField
  • SFNode

The flags parameter is a number ored, for instance like this: Traverse .ROOT_NODES | Traverse .PROTO_DECLARATIONS.

The array of found objects contains a list with the X3DExecutionContext, the X3DField name, maybe the index in the X3DArrayField, the SFNode, and then everything repeats with the X3DField name.

Traverse.find (scene: X3DScene, object: FindObjects | Array <FindObjects>, flags?: number): Iterable <Array <FoundObjects>>

There is also a method Traverse.find with an additional first argument scene, which can be of type:

  • X3DScene
  • X3DExecutionContext

See Also

/x3d-traverse/

    Package Sidebar

    Install

    npm i x3d-traverse

    Weekly Downloads

    79

    Version

    1.0.13

    License

    MIT

    Unpacked Size

    50 kB

    Total Files

    8

    Last publish

    Collaborators

    • create3000