Calcul de l'intersection entre un ensemble de segments et la surface d'un maillage. Plus de détails...
#include <arcane/core/IRayMeshIntersection.h>
Fonctions membres publiques | |
virtual | ~IRayMeshIntersection () |
Libère les ressources. | |
virtual void | build ()=0 |
Construit l'instance. | |
virtual void | compute (Real3ConstArrayView segments_position, Real3ConstArrayView segments_direction, Int32ConstArrayView orig_faces_local_id, Int32ArrayView user_values, Real3ArrayView intersections, RealArrayView distances, Int32ArrayView faces_local_id)=0 |
Calcule l'intersection. | |
virtual void | compute (IItemFamily *ray_family, VariableParticleReal3 &rays_position, VariableParticleReal3 &rays_direction, VariableParticleInt32 &rays_orig_face, VariableParticleInt32 &user_values, VariableParticleReal3 &intersections, VariableParticleReal &distances, VariableParticleInt32 &rays_face)=0 |
Calcule l'intersection de rayons. | |
virtual void | setFaceIntersector (IRayFaceIntersector *intersector)=0 |
Positionne le callback d'intersection. | |
virtual IRayFaceIntersector * | faceIntersector ()=0 |
Intersecteur utilisé (0 si aucun spécifié) | |
Calcul de l'intersection entre un ensemble de segments et la surface d'un maillage.
Définition à la ligne 70 du fichier IRayMeshIntersection.h.
|
inlinevirtual |
Libère les ressources.
Définition à la ligne 75 du fichier IRayMeshIntersection.h.
Construit l'instance.
Implémenté dans Arcane::BasicRayMeshIntersection.
|
pure virtual |
Calcule l'intersection de rayons.
Calcul l'intersection des rayons de la familly ray_family avec la surface du maillage. La position et la direction des rayons est donnée par les variables rays_position et rays_direction. Le tableau rays_orig_face contient le numéro local de la face dont le rayon est originaire. Ce tableau est utilisé dans le IRayFaceIntersector.
En retour rays_face contiendra pour chaque rayon le localId() de la face intersectée ou NULL_ITEM_LOCAL_ID si un rayon n'intersecte aucune face. Le tableau rays_intersection contient en retour la position du point d'intersection et rays_distance la distance du point d'intersection par rapport à l'origine du rayon. Le tableau user_values est remplit en retour par le IRayFaceIntersector
En parallèle, les rayons de la famille sont échangés entre sous-domaines pour qu'un rayon se trouve dans le même sous-domaine que celui propriétaire de la face intersectée. Si un rayon n'intersecte pas de face, il reste dans ce sous-domaine.
Implémenté dans Arcane::BasicRayMeshIntersection.
|
pure virtual |
Calcule l'intersection.
En retour, le tableau faces_local_id contient le numéro local de la face coupée pour chaque segment. Si un segment ne coupe pas de face, le local_id correspondant est NULL_ITEM_LOCAL_ID.
Implémenté dans Arcane::BasicRayMeshIntersection.
|
pure virtual |
Intersecteur utilisé (0 si aucun spécifié)
Implémenté dans Arcane::BasicRayMeshIntersection.
|
pure virtual |
Positionne le callback d'intersection.
Cela permet à l'appelant de spécifier sa méthode de calcul d'intersection d'un rayon avec une face. Si cette méthode n'est pas appelée, un intersecteur par défaut est utilisé.
Implémenté dans Arcane::BasicRayMeshIntersection.