7#ifndef ARCGEOSIM_SURFACEUTILS_ISURFACEUTILS_H
8#define ARCGEOSIM_SURFACEUTILS_ISURFACEUTILS_H
12#include <arcane/utils/Real3.h>
13#include <arcane/core/Item.h>
18namespace Arcane::Numerics
20using namespace Arcane;
34 struct FaceFaceContact
37 FaceFaceContact(
const FaceFaceContact& c)
45 FaceFaceContact(
const Face& fA,
const Face& fB)
50 Real3 centerA, centerB;
51 Real3 normalA, normalB;
75 FaceFaceContactList& contact) = 0;
ISurfaceUtils()
Constructor.
virtual void setFaceToSurface(ISurface *surface, FaceGroup face_group)=0
Sets the faces of a surface.
virtual void computeSurfaceContact(ISurface *surface1, ISurface *surface2, FaceFaceContactList &contact)=0
compute for each face of surface1 the nearest face of surface2
virtual ISurface * createSurface()=0
Creation of a new surface.
virtual ~ISurfaceUtils()
Destructor.
virtual void init()=0
Initialization.
Purely virtual interface for surface representation.
Class managing a 3-dimensional real vector.
1D data vector with value semantics (STL style).
ItemGroupT< Face > FaceGroup
Group of faces.