12#ifndef ARCANE_CORE_GEOMETRICUTILITIES_H
13#define ARCANE_CORE_GEOMETRICUTILITIES_H
17#include "arcane/utils/Real3.h"
18#include "arcane/utils/Real3x3.h"
38class ARCANE_CORE_EXPORT QuadMapping
42 QuadMapping() =
default;
47 Real m_precision = 1.0e-14;
57 Real x0 = (1.0 - u) * (1.0 - v);
58 Real x1 = (1.0 + u) * (1.0 - v);
59 Real x2 = (1.0 + u) * (1.0 + v);
60 Real x3 = (1.0 - u) * (1.0 + v);
62 return 0.25 * (m_pos[0] * x0 + m_pos[1] * x1 + m_pos[2] * x2 + m_pos[3] * x3);
69 Real t1 = 0.25 * (v - 1.0);
70 Real t2 = 0.25 * (v + 1.0);
71 Real t3 = 0.25 * (u - 1.0);
72 Real t4 = 0.25 * (-u - 1.0);
74 return Real3x3(m_pos[0] * t1 - m_pos[1] * t1 + m_pos[2] * t2 - m_pos[3] * t2,
75 m_pos[0] * t3 + m_pos[1] * t4 - m_pos[2] * t4 - m_pos[3] * t3,
95class ARCANE_CORE_EXPORT ProjectionInfo
99 ProjectionInfo(
Real distance,
int region,
Real alpha,
Real beta,
Real3 aprojection)
106 ProjectionInfo() =
default;
Informations sur le type à virgule flottante.
Real3 m_projection
Position de la projection.
static ProjectionInfo projection(Real3 v1, Real3 v2, Real3 v3, Real3 point)
Projection du point point au triangle défini par v1, v2 et v3.
int m_region
Région dans laquelle se situe la projection (0 si intérieur au segment ou au triangle).
Real m_alpha
Coordonnées barycentrique x de la projection.
static bool isInside(Real3 v1, Real3 v2, Real3 v3, Real3 point)
Indique si un la projection du point point est à l'intérieur du triangle défini par v1,...
Real m_distance
Distance du point à sa projection.
Real m_beta
Coordonnées barycentrique y de la projection.
Real3 evaluatePosition(Real3 iso) const
Calcule les coordonnées cartésiennes à partir des coordonnées iso-barycentriques.
Interface du gestionnaire de traces.
Classe gérant un vecteur réel de 3 dimensions.
Classe gérant une matrice réelle 3x3.
Fonctions utilitaires sur la géométrie.
double Real
Type représentant un réel.
Real y
deuxième composante du triplet
Real x
première composante du triplet