22 #ifndef vtkIntersectFragments_h 23 #define vtkIntersectFragments_h 25 #include "vtkMultiBlockDataSetAlgorithm.h" 26 #include "vtkPVVTKExtensionsDefaultModule.h" 35 class vtkImplicitFunction;
36 class vtkMultiProcessController;
45 void PrintSelf(ostream& os, vtkIndent indent);
52 virtual void SetCutFunction(vtkImplicitFunction*);
53 vtkGetObjectMacro(CutFunction, vtkImplicitFunction);
58 void SetGeometryInputConnection(vtkAlgorithmOutput* algOutput);
62 void SetStatisticsInputConnection(vtkAlgorithmOutput* algOutput);
66 vtkMTimeType GetMTime();
73 virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
74 virtual int FillInputPortInformation(
int port, vtkInformation* info);
75 virtual int FillOutputPortInformation(
int port, vtkInformation* info);
78 int IdentifyLocalFragments();
80 int CopyInputStructureStats(vtkMultiBlockDataSet* dest, vtkMultiBlockDataSet* src);
82 int CopyInputStructureGeom(vtkMultiBlockDataSet* dest, vtkMultiBlockDataSet* src);
84 int PrepareToProcessRequest();
89 void BuildLoadingArray(std::vector<vtkIdType>& loadingArray,
int blockId);
90 int PackLoadingArray(vtkIdType*& buffer,
int blockId);
91 int UnPackLoadingArray(
92 vtkIdType* buffer,
int bufSize, std::vector<vtkIdType>& loadingArray,
int blockId);
94 void ComputeGeometricAttributes();
96 int SendGeometricAttributes(
const int recipientProcId);
98 int PrepareToCollectGeometricAttributes(std::vector<vtkMaterialInterfaceCommBuffer>& buffers,
99 std::vector<std::vector<vtkDoubleArray*> >& centers, std::vector<std::vector<int*> >& ids);
101 int CleanUpAfterCollectGeometricAttributes(std::vector<vtkMaterialInterfaceCommBuffer>& buffers,
102 std::vector<std::vector<vtkDoubleArray*> >& centers, std::vector<std::vector<int*> >& ids);
105 int CollectGeometricAttributes(std::vector<vtkMaterialInterfaceCommBuffer>& buffers,
106 std::vector<std::vector<vtkDoubleArray*> >& centers, std::vector<std::vector<int*> >& ids);
108 int PrepareToMergeGeometricAttributes(std::vector<std::vector<int> >& unique);
110 int GatherGeometricAttributes(
const int recipientProcId);
112 int CopyAttributesToStatsOutput(
const int controllingProcId);
114 int CleanUpAfterRequest();
std::vector< std::vector< int > > FragmentIds
vtkMultiBlockDataSet * StatsOut
vtkMultiBlockDataSet * StatsIn
vtkMultiBlockDataSet * GeomIn
Geometry intersection operations.
vtkMultiProcessController * Controller
data
std::vector< vtkDoubleArray * > IntersectionCenters
vtkMultiBlockDataSet * GeomOut
std::vector< std::vector< int > > IntersectionIds
vtkImplicitFunction * CutFunction
PARAVIEW interface data.
std::vector< int > NFragmentsIntersected