Partager via


Limites des objets

Les limites des objets représentent le volume occupé par une entité et ses enfants. Dans Azure Remote Rendering, les limites des objets sont toujours fournies sous la forme de cadres englobants alignés aux axes (AABB, axis aligned bounding box). Les limites des objets peuvent être dans un espace local ou un espace universel. Dans les deux cas, elles sont toujours alignées sur des axes. Leurs étendues et leur volume peuvent donc varier entre la représentation dans l’espace local et dans l’espace universel.

Interrogation des limites des objets

Le cadre englobant local aligné aux axes d’un maillage peut être interrogé directement à partir de la ressource de maillage. Ces limites peuvent être transformées dans l’espace local ou dans l’espace universel d’une entité à l’aide de la transformation de l’entité. Pour plus d’informations, consultez Maillages.

Il est possible de calculer les limites d’une hiérarchie d’objets entière de cette façon. Cette approche nécessite de parcourir la hiérarchie, d’interroger les limites de chaque maillage et de les combiner manuellement. Cette opération est fastidieuse et inefficace.

Il est plus avantageux d’appeler QueryLocalBoundsAsync ou QueryWorldBoundsAsync sur une entité. Cette approche décharge le calcul sur le serveur et permet un retour avec un minimum de délai.

public async void GetBounds(Entity entity)
{
    try
    {
        Task<Bounds> boundsQuery = entity.QueryWorldBoundsAsync();
        Bounds result = await boundsQuery;
    
        Double3 aabbMin = result.Min;
        Double3 aabbMax = result.Max;
        // ...
    }
    catch (RRException ex)
    {
    }
}
void GetBounds(ApiHandle<Entity> entity)
{
    entity->QueryWorldBoundsAsync(
        // completion callback:
        [](Status status, Bounds bounds)
        {
           if (status == Status::OK)
            {
                Double3 aabbMin = bounds.Min;
                Double3 aabbMax = bounds.Max;
                // ...
            }
        }
    );
}

Documentation de l'API

Étapes suivantes