ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
vtkMultiProcessControllerHelper.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 <vector> // needed for std::vector
11 
12 #include "qPCL.h" // needed for export macro
13 #include "vtkObject.h"
14 #include "vtkSmartPointer.h" // needed for vtkSmartPointer.
15 
16 class vtkDataObject;
17 class vtkMultiProcessController;
18 class vtkMultiProcessStream;
19 
21 public:
24  void PrintSelf(ostream& os, vtkIndent indent) override;
25 
30  static int ReduceToAll(vtkMultiProcessController* controller,
31  vtkMultiProcessStream& data,
32  void (*operation)(vtkMultiProcessStream& A,
33  vtkMultiProcessStream& B),
34  int tag);
35 
43  static vtkDataObject* MergePieces(vtkDataObject** pieces,
44  unsigned int num_pieces);
45 
49  static bool MergePieces(std::vector<vtkSmartPointer<vtkDataObject>>& pieces,
50  vtkDataObject* result);
51 
52 protected:
55 
56 private:
58  delete;
59  void operator=(const vtkMultiProcessControllerHelper&) = delete;
60 };
61 
62 // VTK-HeaderTest-Exclude: vtkMultiProcessControllerHelper.h
core::Tensor result
Definition: VtkUtils.cpp:76
vtkTypeMacro(vtkMultiProcessControllerHelper, vtkObject)
static bool MergePieces(std::vector< vtkSmartPointer< vtkDataObject >> &pieces, vtkDataObject *result)
static vtkMultiProcessControllerHelper * New()
GraphType data
Definition: graph_cut.cc:138
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15