InstanceGraphAPI

Interface InstanceGraphAPI

With the InstanceGraphAPI the content of webvis can be controlled and manipulated. It resembles a scene graph like tree structure of Nodes. Every Node can contain links to 3D geometry and/or group other Nodes.

The get- and set-Property functions allow setting and retrieving properties of arbitrary type on the Nodes. Properties are used to modify any Node dependent data like color, local transformation, etc. There is a set of predefined Node properties that webvis will react on, but the surrounding application might add any other property to the Nodes.

Hierarchy

Methods

  • Loads the resource behind the given dataURI and returns the id of the new contents root Node.

    Parameters

    • dataURI: string

      Specifies the URI of the data resource.

    • Optional parentID: number

      By specifying a parentID the resource can be added to an arbitrary Node instead of the tree root.

    • Optional usage: UsageString

      The usage parameter allows to define how the resource should be inserted in the InstanceGraph.

    • Optional label: string

      The label can be used to set a string that is shown in the UI as a name of the Node.

    • Optional contentType: string

      With contentType the type of the input data can be specified with a MimeType or any other descriptor.

    • Optional initialProperties: { [key: string]: any }

      A map of properties to initialize the new Node.

      • [key: string]: any
    • Optional cacheStrategy: CacheStrategy

      Defines the strategy which is used when a data cache is requested from the Hub.

    Returns number

    The id of the new contents root Node

  • Variant of the add function, accepting a params object instead of explicit parameters. The params object is a map from parameter names to parameter values.

    Parameters

    • params: { [key: string]: any }

      The params object.

      • [key: string]: any

    Returns number

  • Creates a custom Node with custom data which is stored in an Attachment.

    Parameters

    • customNodeType: string

      {string} Specifies the custom Node type.

    • data: any

      {any} Specifies the data of the custom Node.

    • Optional dataType: AttachmentType

      {AttachmentType="json"} Specifies the type of the data.

    Returns number

  • Returns a list of all existing runtime Node ids of a specified type.

    Parameters

    • nodeType: NodeType

      The Node type to collect.

    • Optional subType: string

      The sub type to collect. Only used for Custom-Nodes.

    Returns number[]

    A list of runtime Node ids of the specified type.

  • Deprecated

    This function will no longer be available in future webvis releases

    Traverses the subtree of a given nodeID and collects all enabled aux Nodes.

    Parameters

    • Optional nodeID: number

      Specifies the entry point of the subtree traversal (default: 0)

    Returns Promise<number[]>

    An Array of all enabled aux Node id's

  • Returns a JSON object containing the metadata for the given nodeID.

    Parameters

    • nodeID: number

      The id of a Node.

    Returns Promise<{ [key: string]: string }>

    A JSON object containing the requested metadata.

  • Returns the values of the properties on the Node with the matching id.

    Type Parameters

    • T extends string

    Parameters

    • nodeID: number

      The id of the Node whose properties should be read.

    • properties: T[]

      The names of the properties whose value should be read.

    Returns Promise<PropertyType<T>[]>

    The retrieved values of the Node's properties.

  • Returns the value of the property on the Node with the matching id.

    Type Parameters

    • T extends string

    Parameters

    • nodeID: number

      The id of the Node whose property should be read.

    • property: T

      The name of the property whose value should be read.

    Returns Promise<PropertyType<T>>

    The retrieved value of the Node property.

  • Returns the id of the root Node for the given Node or Topology Element.

    • The id of the root Node for the given Node or Topology Element.

    Parameters

    • target: number | TopologyHandle

      Specifies a Node or Topology Element

    Returns number

  • Traverses the subtree of a given nodeID and collects all statistics (currently only available for AUX-Nodes).

    Parameters

    • Optional nodeType: NodeType

      Specifies the target Node type.

    • Optional nodeID: number

      Specifies the entry point of the subtree traversal (default: 0).

    Returns Promise<any>

    An Object of Type/Count pairs.

  • Inverts all enabled states.

    Returns void

  • Parameters

    • nodeID: number

    Returns boolean

    Returns true if a Node is deletable.

  • Parameters

    Returns boolean

    Checks the Node's type for the given Node id.

  • Registering a new custom property.

    Parameters

    • name: string

      The name of the new property.

    • defaultValue: any

      Specifies the default value.

    • Optional recursive: boolean

      Defines whether the property is recursive.

    Returns void

  • Removes the Node for the given nodeID from the InstanceGraph. If no nodeID is supplied all Nodes are deleted.

    Parameters

    • Optional nodeID: number | number[]

      The id of the Node that should be removed.

    Returns Promise<void>

  • Returns the active volume of currently loaded scene.

    Returns Promise<BoxVolume>

    The active volume of currently loaded scene.

  • Returns a list of all existing aux root Node ids below the specified subtree.

    Parameters

    • Optional scopeNodeId: number

      Specifies the top one Node id of the subtree to be searched.

    Returns Promise<number[]>

    A list of aux root Node ids.

  • Returns the full volume of currently loaded scene.

    • The full volume of currently loaded scene.

    Returns Promise<BoxVolume>

  • Returns the L3D information of the specified Node.

    Parameters

    • targetNodeId: number

      Specifies the target Node id.

    Returns Promise<any>

    The L3D information of the specified Node

  • Returns a List of all Node ids which are included or overlapped by the specified 3D world space Bounding Volume.

    Parameters

    • boxVolume: BoxVolume

      Specifies the 3D world space Bounding Volume.

    • Optional includeOverlappingNodes: boolean

      Specifies that the result should include Nodes which overlap the specified 3D world space Bounding Volume as well.

    • Optional includeDisabledNodes: boolean

      Specifies that the result should include Nodes which are disabled as well.

    • Optional forceExpand: boolean
    • Optional scopeNodeId: number

      Specifies the top one Node id of the subtree to be searched.

    Returns Promise<number[]>

    List of all NodeIds which are included or overlapped by the specified 3D world space Bounding Volume.

  • Returns a list of all existing root Node ids below the specified subtree.

    Parameters

    • Optional scopeNodeId: number

      Specifies the top one Node id of the subtree to be searched.

    • Optional recursive: boolean

      Specifies if the subtree is traversed recursively.

    Returns Promise<number[]>

    A list of root Node ids.

  • Resets the value of the specified properties on the given Node.

    Type Parameters

    • T extends string

    Parameters

    • nodeID: number

      The id of the Node whose property should be reset.

    • properties: T[]

      List of properties which should be reset.

    Returns Promise<void>

  • Resets the value of the property on the Node with the matching id.

    Type Parameters

    • T extends string

    Parameters

    • nodeID: number

      The id of the Node whose property should be reset.

    • property: T

      Property which should be reset.

    Returns Promise<void>

  • Parameters

    • nodeID: number
    • newParentID: number

    Returns void

  • Sets the property named property to value on the Node with id nodeID.

    Type Parameters

    • T extends string

    Parameters

    • nodeID: number | number[]

      The id of the Node whose property has to be set.

    • property: T

      The name of the property that has to be set.

    • value: PropertyType<T>

      The new value of the specified property.

    • Optional silent: boolean

      The silent flag indicates that no NODE_CHANGED event is fired.

    Returns Promise<SetPropertyResults>