99#ifndef vtkUnstructuredGridSides_h
100#define vtkUnstructuredGridSides_h
103#include "vtkCommonDataModelModule.h"
112VTK_ABI_NAMESPACE_BEGIN
117template <
typename TId = vtkIdType,
typename TS
ideId = vtkTypeInt8>
151 vtkSetMacro(PreserveRenderableInputs,
bool);
152 vtkGetMacro(PreserveRenderableInputs,
bool);
153 vtkBooleanMacro(PreserveRenderableInputs,
bool);
160 vtkSetMacro(OmitSidesForRenderableInputs,
bool);
161 vtkGetMacro(OmitSidesForRenderableInputs,
bool);
162 vtkBooleanMacro(OmitSidesForRenderableInputs,
bool);
171 vtkSetClampMacro(OutputDimensionControl,
int, 0, SideFlags::AllSides);
172 vtkGetMacro(OutputDimensionControl,
int);
196 vtkSetMacro(PointClipping,
bool);
197 vtkGetMacro(PointClipping,
bool);
198 vtkBooleanMacro(PointClipping,
bool);
206 vtkSetMacro(CellClipping,
bool);
207 vtkGetMacro(CellClipping,
bool);
208 vtkBooleanMacro(CellClipping,
bool);
216 vtkSetMacro(ExtentClipping,
bool);
217 vtkGetMacro(ExtentClipping,
bool);
218 vtkBooleanMacro(ExtentClipping,
bool);
248 vtkSetVector6Macro(Extent,
double);
249 vtkGetVector6Macro(Extent,
double);
257 vtkSetMacro(RemoveGhostInterfaces,
bool);
258 vtkGetMacro(RemoveGhostInterfaces,
bool);
259 vtkBooleanMacro(RemoveGhostInterfaces,
bool);
268 vtkSetMacro(MaskedGhostTypes,
unsigned char);
269 vtkGetMacro(MaskedGhostTypes,
unsigned char);
281 vtkSetMacro(MatchSidePoints,
bool);
282 vtkGetMacro(MatchSidePoints,
bool);
283 vtkBooleanMacro(MatchSidePoints,
bool);
497 vtkIdType GetStorageOffsetOfKey(TId keyId)
const;
501 template <
class OffsetsT,
class ConnectivityT>
503 template <
class InputCellsT>
505 template <
class InputCellsT,
bool Faces>
506 struct MatchingFunctor;
507 struct PreservedCells;
508 struct BuildSidesWorker;
512 bool PreserveRenderableInputs =
false;
513 bool OmitSidesForRenderableInputs =
false;
514 int OutputDimensionControl = SideFlags::NextLowestDimension;
516 bool PointClipping =
false;
517 bool CellClipping =
false;
518 bool ExtentClipping =
false;
525 bool RemoveGhostInterfaces =
true;
526 unsigned char MaskedGhostTypes =
528 bool MatchSidePoints =
true;
537 KeysType ScatteredKeys;
540 const KeysType* BuiltKeys = &this->ScatteredKeys;
541 BuildMode Mode = BuildMode::None;
542 std::unique_ptr<TId[]> CellIds;
543 std::unique_ptr<TSideId[]> SideIds;
544 std::unique_ptr<std::uint8_t[]> Dimensions;
545 std::uint8_t SideDimension = 0;
555#if defined(VTK_UNSTRUCTURED_GRID_SIDES_INSTANTIATING)
557#define VTK_UNSTRUCTURED_GRID_SIDES_INSTANTIATE(TId, TSideId) \
558 VTK_ABI_NAMESPACE_BEGIN \
559 template class VTKCOMMONDATAMODEL_EXPORT vtkUnstructuredGridSides<TId, TSideId>; \
560 VTK_ABI_NAMESPACE_END
564#elif defined(VTK_USE_EXTERN_TEMPLATE) && !defined(__MINGW32__)
566#ifndef VTK_UNSTRUCTURED_GRID_SIDES_TEMPLATE_EXTERN
567#define VTK_UNSTRUCTURED_GRID_SIDES_TEMPLATE_EXTERN
572#pragma warning(disable : 4910)
574VTK_ABI_NAMESPACE_BEGIN
576extern template class VTKCOMMONDATAMODEL_EXPORT
579extern template class VTKCOMMONDATAMODEL_EXPORT
SideFlags
An enum specifying which side(s) each responder should generate.
SummaryStrategy
An enum specifying the strategy by which input hashes are summarized into output Sides entries.
Detect and break reference loops.
provides thread-safe access to cells
list of point or cell ids
a simple class to control print indentation
record modification and/or execution time
the sides of the cells of a vtkUnstructuredGrid, matched without cell links
BuildMode
How the sides were built, see GetBuildMode().
bool UsesGarbageCollector() const override
The dataset is reported to the garbage collector, see ReportReferences().
vtkTemplateTypeMacro(SelfType, vtkObject)
vtkIdType GetNumberOfGroups() const
The groups of equal sides, ordered by key: their number, e.g., the number of distinct faces,...
TSideId GetSideIdOfSide(TId keyId, vtkIdType k) const
The cell, the local index in its cell, and the dimension of the side k of a key, 0 <= k < GetNumberOf...
TId GetNumberOfKeys() const
The number of keys: the number of points plus one if some sides are found, otherwise one,...
vtkIdType GetNumberOfSides() const
The number of sides: the kept sides after BuildReducedSides(), all the sides otherwise.
vtkCellGridSidesQuery::SummaryStrategy SummaryStrategy
vtkUnstructuredGridSides< TId, TSideId > SelfType
int GetDimensionOfGroup(vtkIdType group) const
The dimension of the sides of a group, 0 <= group < GetNumberOfGroups(), which all have the same one,...
virtual void SetDataSet(vtkUnstructuredGrid *dataSet)
The dataset whose sides are built, which is referenced.
void GetSidePoints(TId keyId, vtkIdType k, vtkIdList *sidePtIds, unsigned char &cellType, vtkIdList *tempCellPointIds, vtkGenericCell *tempCell) const
Get the point ids of the side k of a key, in the order of the side in its cell, from the cell arrays ...
const TId * GetCellIdsOfKey(TId keyId) const
The cells of the sides of a key, of GetNumberOfSidesOfKey() values, 0 <= keyId < GetNumberOfKeys().
void ReportReferences(vtkGarbageCollector *) override
virtual void SetStrategy(SummaryStrategy)
vtkIdType GetNumberOfSidesOfGroup(vtkIdType group) const
The number of sides of a group, 0 <= group < GetNumberOfGroups(), and its first side,...
~vtkUnstructuredGridSides() override
const TId * GetCellIdsOfGroup(vtkIdType group) const
The cells and the local indices in their cell of the sides of a group, of GetNumberOfSidesOfGroup() v...
vtkCellGridSidesQuery::SideFlags SideFlags
vtkIdType GetGroupOffsetOfKey(TId keyId) const
The groups of equal sides, ordered by key: their number, e.g., the number of distinct faces,...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetDimensionOfSide(TId keyId, vtkIdType k) const
The cell, the local index in its cell, and the dimension of the side k of a key, 0 <= k < GetNumberOf...
SideInformation GetSideInformation(TId keyId, vtkIdType k, vtkGenericCell *tempCell) const
The information of the side k of a key, without reading its points: its type and size are given by vt...
const TSideId * GetSideIdsOfKey(TId keyId) const
The local indices of the sides of a key in their cell, of GetNumberOfSidesOfKey() values,...
BuildMode GetBuildMode() const
How the sides were last built, None if they were not, e.g., after Reset().
vtkIdType GetSideOffsetOfGroup(vtkIdType group) const
The number of sides of a group, 0 <= group < GetNumberOfGroups(), and its first side,...
void SetStrategyToBoundary()
Which sides to keep, see BuildReducedSides().
void SetStrategyToWinding()
Which sides to keep, see BuildReducedSides().
void BuildScatteredSides()
Find the sides of the cells given by OutputDimensionControl, and scatter all of them by their key,...
vtkUnstructuredGridSides()
vtkIdType GetNumberOfSidesOfKey(TId keyId) const
The number of sides of a key, as GetNumberOfSides(), 0 <= keyId < GetNumberOfKeys().
virtual void SetStrategy(int strategy)
This method exists for ParaView to set the strategy.
vtkIdType GetSideOffsetOfKey(TId keyId) const
The offset of a key, 0 <= keyId <= GetNumberOfKeys(): the number of sides of the keys before it,...
void Reset()
Release the memory, so that the sides are built again.
void SetStrategyToAnyOccurrence()
Which sides to keep, see BuildReducedSides().
void BuildReducedSides()
Same as BuildScatteredSides(), then match the sides of every key, and keep them as given by the summa...
void BuildGroupedSides()
Same as BuildScatteredSides(), then match the sides of every key, and keep all of them,...
TId GetCellIdOfSide(TId keyId, vtkIdType k) const
The cell, the local index in its cell, and the dimension of the side k of a key, 0 <= k < GetNumberOf...
const TSideId * GetSideIdsOfGroup(vtkIdType group) const
The cells and the local indices in their cell of the sides of a group, of GetNumberOfSidesOfGroup() v...
dataset represents arbitrary combinations of all possible cell types
The dense keys of the elements, returned by ScatterDense(): every key of the key range [GetMinKey(),...
The keys of the surviving elements of Reduce(), or of the groups of Group(): the keys of the scattere...
The result of Group(): the groups, and the keys of the groups, i.e., the groups of key id k are [Keys...
parallel scatter of elements by key, and operations on the elements of every key
vtkTypeUInt32 vtkMTimeType