SheafSystem  0.0.0.0
vtk_abstract_grid_builder.h
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
18 // Interface for class vtk_abstract_grid_builder
19 
20 #ifndef VTK_ABSTRACT_GRID_BUILDER_H
21 #define VTK_ABSTRACT_GRID_BUILDER_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef ANY_H
28 #include "SheafSystem/any.h"
29 #endif
30 
31 #ifndef BLOCK_H
32 #include "SheafSystem/block.h"
33 #endif
34 
35 #ifndef SEC_VD_H
36 #include "SheafSystem/sec_vd.h"
37 #endif
38 
39 #ifndef SHEAF_H
40 #include "SheafSystem/sheaf.h"
41 #endif
42 
43 class vtkDataSet;
44 class vtkDataArray;
45 class vtkDoubleArray;
46 class vtkIdTypeArray;
47 class vtkUnstructuredGrid;
48 
49 namespace sheaf
50 {
51 class namespace_poset;
52 }
53 
54 namespace fiber_bundle
55 {
56 class base_space_poset;
57 class sec_rep_space;
58 }
59 
63 namespace tool
64 {
65 
66 using namespace sheaf;
67 using namespace fiber_bundle;
68 
72 class SHEAF_DLL_SPEC vtk_abstract_grid_builder : public any
73 {
74 
75 public:
76 
78 
79  typedef sec_vd::dof_type dof_type;
80 
81  // ===========================================================
82  // ANY FACET
83  // ===========================================================
84 
88  virtual bool is_ancestor_of(const any* other) const;
89 
94  virtual vtk_abstract_grid_builder* clone() const;
95 
100  virtual vtk_abstract_grid_builder& operator=(const vtk_abstract_grid_builder& xother);
101 
105  virtual bool invariant() const;
106 
107  // ===========================================================
108  // VTK_ABSTRACT_GRID_BUILDER FACET
109  // ===========================================================
110 
115  void set_name_space(namespace_poset& xns);
116 
120  virtual ~vtk_abstract_grid_builder();
121 
125  vtkUnstructuredGrid* build(const sec_vd& xcoords, const sec_vd& xproperty);
126 
130  vtkUnstructuredGrid* build(const sec_vd& xcoords,
131  const sec_vd& xproperty1,
132  const sec_vd& xproperty2);
133 
137  vtkUnstructuredGrid* build(const sec_vd& xcoords);
138 
143  void build_pa(const sec_vd& xcoords, const sec_vd& xproperty,
144  vtkUnstructuredGrid& xresult);
145 
150  void build_pa(const sec_vd& xcoords,
151  const sec_vd& xproperty1,
152  const sec_vd& xproperty2,
153  vtkUnstructuredGrid& xresult);
154 
160  void build_pa(const sec_vd& xcoords, vtkUnstructuredGrid& xresult);
161 
166  bool use_point_top_ids() const;
167 
171  void put_use_point_top_ids(bool xvalue);
172 
177  bool use_cell_top_ids() const;
178 
182  void put_use_cell_top_ids(bool xvalue);
183 
187  vtkIdTypeArray* vtk_pt_label_ids() const;
188 
192  vtkIdTypeArray* vtk_cell_label_ids() const;
193 
194 protected:
195 
200 
201 
207 
213 
217  vtkIdTypeArray* _vtk_pt_label_ids;
218 
222  vtkIdTypeArray* _vtk_cell_label_ids;
223 
224 };
225 
226 // ===========================================================
227 // NON-MEMBER FUNCTIONS
228 // ===========================================================
229 
230 
231 } // namespace tool
232 
233 #endif // ifndef VTK_ABSTRACT_GRID_BUILDER_H
The default name space; a poset which contains other posets as members.
Abstract class for creating a vtkUnstructuredGrid from sheaf field objects.
Namespace for the tools component of the sheaf system.
Abstract base class with useful features for all objects.
Definition: any.h:39
bool _use_point_top_ids
If true use top ids to label points; otherwise, use discretization ids.
vtkIdTypeArray * _vtk_cell_label_ids
Array of top ids for cells.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
Definition: sheaf.h:52
A section of a fiber bundle with a d-dimensional vector space fiber.
Definition: sec_vd.h:54
bool _use_cell_top_ids
If true use top ids to label cells; otherwise, use evaluation ids.
sec_vd_dof_type dof_type
The type of degree of freedom.
Definition: sec_vd.h:91
Namespace for the sheaves component of the sheaf system.
vtkIdTypeArray * _vtk_pt_label_ids
Array of top ids for points.
Namespace for the fiber_bundles component of the sheaf system.