Arcane  4.2.1.0
User documentation
Loading...
Searching...
No Matches
IMeshSection.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IMeshSection.h (C) 2000-2026 */
9/* */
10/* Service interface allowing the creation of a mesh with a section of */
11/* another mesh. */
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_CORE_IMESHSECTION_H
14#define ARCANE_CORE_IMESHSECTION_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29/*!
30 * \brief Service interface allowing the creation of a mesh with a section of
31 * another mesh.
32 */
33class ARCANE_CORE_EXPORT IMeshSection
34{
35 public:
36
37 //! Releases resources
38 virtual ~IMeshSection() = default;
39
40 public:
41
42 /*!
43 * \brief Method allowing to add a plane to the cut service. The use of
44 * these planes depends on the service.
45 *
46 * \param p0 Point of the plane.
47 * \param normal Normal of the plane.
48 */
49 virtual void addPlane(const Real3& p0, const Real3& normal) = 0;
50
51 /*!
52 * \brief Method allowing to add a set of variables to copy on the
53 * new mesh.
54 *
55 * \param variables A set of variable on the original mesh.
56 */
58
59 /*!
60 * \brief Method allowing to get a set of variables copied on the new
61 * mesh.
62 *
63 * \return A set of variables on the cloned mesh.
64 */
66
67 /*!
68 * \brief Method allowing to set a unique id allowing to create multiple
69 * section services for a mesh.
70 *
71 * \param unique_id Mesh unique id to apply.
72 */
73 virtual void setServiceMeshUniqueId(Int32 unique_id) = 0;
74
75 /*!
76 * \brief Method allowing to update the mesh section with all planes.
77 *
78 * If a previous call has edited the mesh, all the cells will be destroyed
79 * before update.
80 */
81 virtual void updateSection() = 0;
82
83 /*!
84 * \brief Méthod allowing to get the mesh section.
85 *
86 * \return The mesh section.
87 */
88 virtual MeshHandle meshSection() = 0;
89};
90
91/*---------------------------------------------------------------------------*/
92/*---------------------------------------------------------------------------*/
93
94} // namespace Arcane
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
99#endif
Declarations of Arcane's general types.
Service interface allowing the creation of a mesh with a section of another mesh.
virtual void updateSection()=0
Method allowing to update the mesh section with all planes.
virtual void setVariables(VariableCollection variables)=0
Method allowing to add a set of variables to copy on the new mesh.
virtual MeshHandle meshSection()=0
Méthod allowing to get the mesh section.
virtual void addPlane(const Real3 &p0, const Real3 &normal)=0
Method allowing to add a plane to the cut service. The use of these planes depends on the service.
virtual VariableCollection variables()=0
Method allowing to get a set of variables copied on the new mesh.
virtual void setServiceMeshUniqueId(Int32 unique_id)=0
Method allowing to set a unique id allowing to create multiple section services for a mesh.
virtual ~IMeshSection()=default
Releases resources.
Handle on a mesh.
Definition MeshHandle.h:48
Class managing a 3-dimensional real vector.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int32_t Int32
Signed integer type of 32 bits.