Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / utilities / postProcessing / graphics / PV3FoamReader / vtkPV3Foam / vtkPV3FoamUpdateInfoFields.H
blob31675bc495b607310b67143f6df60ee19d08cd5b
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 InClass
25     vtkPV3Foam
27 \*---------------------------------------------------------------------------*/
29 #ifndef vtkPV3FoamUpdateInfoFields_H
30 #define vtkPV3FoamUpdateInfoFields_H
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
34 template<template<class> class patchType, class meshType>
35 void Foam::vtkPV3Foam::updateInfoFields
37     vtkDataArraySelection *select
40     if (debug)
41     {
42         Info<< "<beg> Foam::vtkPV3Foam::updateInfoFields <"
43             << meshType::Mesh::typeName
44             << "> [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]"
45             << endl;
46     }
48     stringList enabledEntries;
49     // enable 'p' and 'U' on the first call
50     if (select->GetNumberOfArrays() == 0 && !meshPtr_)
51     {
52         enabledEntries.setSize(2);
53         enabledEntries[0] = "p";
54         enabledEntries[1] = "U";
55     }
56     else
57     {
58         // preserve the enabled selections
59         enabledEntries = getSelectedArrayEntries(select);
60     }
62     select->RemoveAllArrays();
64     // use the db directly since this might be called without a mesh,
65     // but the region must get added back in
66     word regionPrefix;
67     if (meshRegion_ != polyMesh::defaultRegion)
68     {
69         regionPrefix = meshRegion_;
70     }
72     // Search for list of objects for this time and mesh region
73     IOobjectList objects(dbPtr_(), dbPtr_().timeName(), regionPrefix);
75     //- Add volume fields to GUI
76     addToSelection<GeometricField<scalar, patchType, meshType> >
77     (
78         select,
79         objects
80     );
81     addToSelection<GeometricField<vector, patchType, meshType> >
82     (
83         select,
84         objects
85     );
86     addToSelection<GeometricField<sphericalTensor, patchType, meshType> >
87     (
88         select,
89         objects
90     );
91     addToSelection<GeometricField<symmTensor, patchType, meshType> >
92     (
93         select,
94         objects
95     );
96     addToSelection<GeometricField<tensor, patchType, meshType> >
97     (
98         select,
99         objects
100     );
102     // restore the enabled selections
103     setSelectedArrayEntries(select, enabledEntries);
105     if (debug)
106     {
107         Info<< "<end> Foam::vtkPV3Foam::updateInfoFields" << endl;
108     }
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113 #endif
114 // ************************************************************************* //