API (v2.0.0) - Giro3D
    Preparing search index...

    Class DrapedFeatureCollectionExperimental

    Loads 3D features from a FeatureSource and displays them on top of a map or map-like entity, by taking terrain into account.

    To drape features on custom entities, they must implement the MapLike interface.

    This entity is experimental and might suffer performance issues when loading many features. Notably be careful when setting the minLod value. If this value is too low, this could cause many features to be loaded (especially when used with streamed data, such as WFS servers).

    It is recommended to experiment with a high minLod value then decrease it progressively.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _distance: { max: number; min: number }
    hasDefaultPointOfView: true = ...

    Readonly flag to check if a given object implements HasDefaultPointOfView.

    id: string

    The unique identifier of this entity.

    isDrapedFeatureCollection: true = ...
    isEntity: boolean = ...

    Read-only flag to check if a given object is of type Entity.

    isEntity3D: boolean = ...

    Read-only flag to check if a given object is of type Entity3D.

    isMemoryUsage: true = ...

    Readonly flag to indicate that his object implements MemoryUsage.

    isPickable: true
    name: string | undefined

    The name of this entity.

    type: "DrapedFeatureCollection" = ...
    userData: TUserData

    An object that can be used to store custom data about the Entity.

    Accessors

    • get clippingPlanes(): Plane[] | null
      Experimental

      Gets or sets the clipping planes set on this entity. Default is null (no clipping planes).

      Note: custom entities must ensure that the materials and shaders used do support the clipping plane feature of three.js. Refer to the three.js documentation for more information.

      Returns Plane[] | null

    • set clippingPlanes(planes: Plane[] | null): void
      Experimental

      Parameters

      • planes: Plane[] | null

      Returns void

    • get distance(): Readonly<{ max: number; min: number }>
      Experimental

      Returns Readonly<{ max: number; min: number }>

    • get frozen(): boolean
      Experimental

      Gets or sets the frozen status of this entity. A frozen entity is still visible but will not be updated automatically.

      Useful for debugging purposes.

      Returns boolean

    • set frozen(v: boolean): void
      Experimental

      Parameters

      • v: boolean

      Returns void

    • get loading(): boolean
      Experimental

      Gets whether this entity is currently loading data.

      Returns boolean

    • get object3d(): Object3D
      Experimental

      Returns the root object of this entity.

      Returns Object3D

    • get opacity(): number
      Experimental

      Gets or sets the opacity of this entity.

      Returns number

    • set opacity(v: number): void
      Experimental

      Parameters

      • v: number

      Returns void

    • get progress(): number
      Experimental

      Gets the current loading progress (between 0 and 1). Note: This property is only meaningful if loading is true.

      Returns number

    • get ready(): boolean
      Experimental

      Determine if this entity is ready to use.

      Returns boolean

    • get renderOrder(): number
      Experimental

      Gets or sets the render order of this entity.

      Returns number

    • set renderOrder(v: number): void
      Experimental

      Parameters

      • v: number

      Returns void

    • get visible(): boolean
      Experimental

      Gets or sets the visibility of this entity. A non-visible entity will not be automatically updated.

      Returns boolean

    • set visible(v: boolean): void
      Experimental

      Parameters

      • v: boolean

      Returns void

    Methods

    • Experimental

      Test whether this entity contains the given object.

      The object may be a component of the entity, or a 3D object.

      Parameters

      • obj: unknown

        The object to test.

      Returns boolean

      true if the entity contains the object.

    • Experimental

      Disposes this entity and all resources associated with it.

      The default implementation of this method does nothing. You should implement it in your custom entities to handle any special logic of disposal.

      For example: disposing materials, geometries, stopping HTTP requests, etc.

      Returns void

    • Experimental

      Filters what objects need to be updated, based on updatedSources. The returned objects are then passed to preUpdate and postUpdate.

      Inherited classes should override shouldFullUpdate and shouldUpdate if they need to change this behavior.

      Parameters

      • updateSources: Set<unknown>

        Sources that triggered an update

      Returns Set<unknown>

      Set of objects to update

    • Experimental

      Returns an approximated bounding box of this entity in the scene.

      Returns Box3 | null

      the resulting bounding box, or null if it could not be computed.

    • Experimental

      Returns true if this object belongs to this entity.

      Parameters

      • obj: unknown

        The object to test.

      Returns boolean

    • Experimental

      Notifies the parent instance that a change occured in the scene.

      Parameters

      • Optionalsource: unknown

      Returns void

    • Experimental

      Applies entity-level setup on a new object.

      Note: this method should be called from the subclassed entity to notify the parent class that a new 3D object has just been created, so that it can be setup with entity-wide parameters.

      Parameters

      • obj: Object3D

        The object to prepare.

      Returns void

      // In the subclass
      const obj = new Object3D();

      // Notify the parent class
      this.onObjectCreated(obj);
    • Experimental

      Called when the rendering context has been lost.

      Parameters

      • options: { canvas: HTMLCanvasElement }

        The options.

      Returns void

    • Experimental

      Called when the rendering context has been restored.

      Parameters

      • options: { canvas: HTMLCanvasElement }

        The options.

      Returns void

    • Experimental

      Asynchronously preprocess the entity. This method may be overriden to perform any operation that must be done before the entity can be used in the scene, such as fetching metadata about a dataset, etc.

      Returns Promise<void>

      A promise that resolves when the entity is ready to be used.

    • Experimental

      This method is called just before update() to filter and select which elements should be actually updated. For example, in the case of complex entities made of a hierarchy of elements, the entire hierarchy may not need to be updated.

      Use this method to optimize the update step by reducing the number of elements to process.

      Note: if this functions returns nothing, update() will not be called.

      Parameters

      • context: Context

        the update context.

      • changeSources: Set<unknown>

        the objects that triggered an update step. This is useful to filter out unnecessary updates if no sources are relevant to this entity. For example, if one of the sources is a camera that moved during the previous frame, any entity that depends on the camera's field of view should be updated.

      Returns unknown[] | null

      the elements to update during update().

    • Experimental

      Applies entity-level setup on new object's material.

      Subclasses can override this to setup custom logic, for instance if the entity can produce objects that are naturally transparent.

      Parameters

      • material: Material

        the material of the newly created object

      Returns void

    • Experimental

      This method is called before update to check if the MainLoop should try to update this entity or not. For better performances, it should return false if the entity has no impact on the rendering (e.g. the element is not visible).

      The inherited child can completely ignore this value if it makes sense.

      Returns boolean

      true if should check for update

    • Experimental

      This method is called at the beginning of the update step to determine if we should do a full render of the object. This should be the case if, for instance, the source is the camera.

      You can override this depending on your needs. The inherited child should not ignore this value, it should do a boolean OR, e.g.: return super.shouldFullUpdate(updateSource) || this.contains(updateSource);

      Parameters

      • updateSource: unknown

        Source of change

      Returns boolean

      true if requires a full update of this object

    • Experimental

      This method is called at the beginning of the update step to determine if we should re-render updateSource. Not used when shouldFullUpdate returns true.

      You can override this depending on your needs. The inherited child should not ignore this value, it should do a boolean OR, e.g.: return super.shouldUpdate(updateSource) || this.contains(updateSource);

      Parameters

      • updateSource: unknown

        Source of change

      Returns boolean

      true if requires an update of updateSource

    • Experimental

      Traverses all objects in the hierarchy of this entity.

      Parameters

      • callback: (arg0: Object3D) => void

        The callback.

      • root: Object3D<Object3DEventMap> | undefined = undefined

        The traversal root. If undefined, the traversal starts at the root object of this entity.

      Returns void

    • Experimental

      Traverses all materials in the hierarchy of this entity.

      Parameters

      • callback: (arg0: Material) => void

        The callback.

      • root: Object3D<Object3DEventMap> | undefined = undefined

        The traversal root. If undefined, the traversal starts at the root object of this entity.

      Returns void

    • Experimental

      Traverses all meshes in the hierarchy of this entity.

      Parameters

      • callback: (arg0: Mesh) => void

        The callback.

      • root: Object3D<Object3DEventMap> | undefined = undefined

        The raversal root. If undefined, the traversal starts at the root object of this entity.

      Returns void

    • Experimental

      Performs an update on an element of the entity.

      Note: this method will be called for each element returned by preUpdate().

      Parameters

      • context: Context

        the update context. This is the same object that the entity whose update() is being called.

      • element: unknown

        the element to update. This is one of the elements returned by preUpdate.

      Returns unknown[] | null | undefined

      New elements to update