ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
vtkPMergeConnected.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include "qPCL.h" // For export macro
11 #include "vtkMultiBlockDataSetAlgorithm.h"
12 
13 class vtkMultiProcessController;
14 class vtkUnstructuredGrid;
15 class vtkIdList;
16 class vtkFloatArray;
17 class vtkIdTypeArray;
18 
20  : public vtkMultiBlockDataSetAlgorithm {
21 public:
23  vtkTypeMacro(vtkPMergeConnected, vtkMultiBlockDataSetAlgorithm);
24  void PrintSelf(ostream& os, vtkIndent indent);
25 
26  struct FaceWithKey {
27  int num_pts;
28  vtkIdType *key, *orig;
29  };
30  struct cmp_ids;
31 
32 protected:
35 
36  int RequestData(vtkInformation*,
37  vtkInformationVector**,
38  vtkInformationVector*);
39  int FillOutputPortInformation(int port, vtkInformation* info);
40 
41 private:
42  vtkPMergeConnected(const vtkPMergeConnected&) = delete;
43  void operator=(const vtkPMergeConnected&) = delete;
44 
45  // parallelism
46  int NumProcesses;
47  int MyId;
48  vtkMultiProcessController* Controller;
49  void SetController(vtkMultiProcessController* c);
50 
51  // filter
52  void LocalToGlobalRegionId(vtkMultiProcessController* contr,
53  vtkMultiBlockDataSet* data);
54  void MergeCellsOnRegionId(vtkUnstructuredGrid* ugrid,
55  int target,
56  vtkIdList* facestream);
57  float MergeCellDataOnRegionId(vtkFloatArray* data_array,
58  vtkIdTypeArray* rid_array,
59  vtkIdType target);
60 
61  void delete_key(FaceWithKey* key);
62  FaceWithKey* IdsToKey(vtkIdList* ids);
63 };
vtkDataArray * data_array
Definition: VtkUtils.cpp:75
static vtkPMergeConnected * New()
vtkTypeMacro(vtkPMergeConnected, vtkMultiBlockDataSetAlgorithm)
GraphType data
Definition: graph_cut.cc:138
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15