Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IItemFamilyCompactPolicy.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IItemFamilyCompactPolicy.h (C) 2000-2016 */
9/* */
10/* Interface de la politique de compactage des entités d'une famille. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IITEMFAMILYCOMPACTPOLICY_H
13#define ARCANE_IITEMFAMILYCOMPACTPOLICY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27class IItemFamily;
28class IMeshCompacter;
29class ItemFamilyCompactInfos;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33/*!
34 * \brief Politique de compactage des entités.
35 *
36 * Une instance de cette classe est associée à chaque famille.
37 *
38 * Le pseudo-code d'appel pour un compactage est le suivant:
39 *
40 \code
41 * IMesh* mesh = ...;
42 * IMeshCompacter* compacter = ...;
43 * ItemFamilyCollection families = mesh->itemFamilies();
44 * UniqueArray<ItemFamilyCompactPolicy> policies;
45 * for( IItemFamily* family : mesh->itemFamilies() )
46 * policies.add( createCompactPolicity(family) );
47 * for( ItemFamilyCompactPolicity* policy : policies)
48 * policy->beginCompact(...);
49 * for( ItemFamilyCompactPolicity* policy : policies)
50 * policy->compactVariablesAndGroups(...);
51 * for( ItemFamilyCompactPolicity* policy : policies)
52 * policy->updateInternalReferences(compacter);
53 * for( ItemFamilyCompactPolicity* policy : policies)
54 * policy->endCompact(...);
55 \endcode
56 *
57 * En dehors d'un compactage, il est possible d'appeler
58 * compactReferenceData() qui permet de compacter les données servant
59 * à contenir les infos de connectivité.
60 * données.
61 */
62class ARCANE_CORE_EXPORT IItemFamilyCompactPolicy
63{
64 public:
66 public:
67 // TODO: faire une méthode computeCompact après beginCompact().
68 virtual void beginCompact(ItemFamilyCompactInfos& compact_infos) =0;
69 virtual void compactVariablesAndGroups(const ItemFamilyCompactInfos& compact_infos) =0;
70 virtual void updateInternalReferences(IMeshCompacter* compacter) =0;
71 virtual void endCompact(ItemFamilyCompactInfos& compact_infos) =0;
72 virtual void finalizeCompact(IMeshCompacter* compacter) =0;
73 //! Famille associée
74 virtual IItemFamily* family() const =0;
75 //! Compacte les données sur les connectivités.
76 virtual void compactConnectivityData() =0;
77};
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82ARCANE_END_NAMESPACE
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87#endif
Fichier de configuration d'Arcane.
Politique de compactage des entités.
virtual void compactConnectivityData()=0
Compacte les données sur les connectivités.
virtual IItemFamily * family() const =0
Famille associée.
Interface d'une famille d'entités.
Gestion d'un compactage de familles du maillage.
Informations pour gérer le compactage des entités d'une famille.