All Downloads are FREE. Search and download functionalities are using the official Maven repository.

main.cesium.EntityCluster.kt Maven / Gradle / Ivy

// Automatically generated - do not modify!

@file:JsModule("cesium")

@file:Suppress(
    "NON_EXTERNAL_DECLARATION_IN_INAPPROPRIATE_FILE",
)

package cesium

/**
 * Defines how screen space objects (billboards, points, labels) are clustered.
 * @see Online Documentation
 */
external class EntityCluster {
    /**
     * Determines if entities in this collection will be shown.
     * @see Online Documentation
     */
    var show: Boolean

    /**
     * Gets or sets whether clustering is enabled.
     * @see Online Documentation
     */
    var enabled: Boolean

    /**
     * Gets or sets the pixel range to extend the screen space bounding box.
     * @see Online Documentation
     */
    var pixelRange: Int

    /**
     * Gets or sets the minimum number of screen space objects that can be clustered.
     * @see Online Documentation
     */
    var minimumClusterSize: Int

    /**
     * Gets the event that will be raised when a new cluster will be displayed. The signature of the event listener is [EntityCluster.newClusterCallback].
     * @see Online Documentation
     */
    var clusterEvent: Event

    /**
     * Gets or sets whether clustering billboard entities is enabled.
     * @see Online Documentation
     */
    var clusterBillboards: Boolean

    /**
     * Gets or sets whether clustering labels entities is enabled.
     * @see Online Documentation
     */
    var clusterLabels: Boolean

    /**
     * Gets or sets whether clustering point entities is enabled.
     * @see Online Documentation
     */
    var clusterPoints: Boolean

    /**
     * Destroys the WebGL resources held by this object.  Destroying an object allows for deterministic
     * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
     *
     * Unlike other objects that use WebGL resources, this object can be reused. For example, if a data source is removed
     * from a data source collection and added to another.
     * @see Online Documentation
     */
    fun destroy()
}

/**
 * A event listener function used to style clusters.
 * ```
 * // The default cluster values.
 * dataSource.clustering.clusterEvent.addEventListener(function(entities, cluster) {
 *     cluster.label.show = true;
 *     cluster.label.text = entities.length.toLocaleString();
 * });
 * ```
 * @param [clusteredEntities] An array of the entities contained in the cluster.
 * @param [cluster] An object containing billboard, label, and point properties. The values are the same as
 *   billboard, label and point entities, but must be the values of the ConstantProperty.
 * @see Online Documentation
 */
typealias newClusterCallback = (clusteredEntities: Array, cluster: Any) -> Unit

inline fun EntityCluster(
    block: EntityCluster.() -> Unit,
): EntityCluster =
    EntityCluster().apply(block)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy