VTK
vtkSMPMergePoints.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSMPMergePoints.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
30 #ifndef vtkSMPMergePoints_h__
31 #define vtkSMPMergePoints_h__
32 
33 #include "vtkFiltersSMPModule.h" // For export macro
34 #include "vtkMergePoints.h"
35 #include "vtkIdList.h" // For inline functions
36 #include "vtkAtomicTypes.h" // For the atomic integer used in Merge()
37 
38 class vtkPointData;
39 
41 {
42 public:
45  void PrintSelf(ostream &os, vtkIndent indent);
46 
49 
51 
58  void Merge(vtkSMPMergePoints* locator,
59  vtkIdType idx,
60  vtkPointData *outPd,
61  vtkPointData *inPd,
62  vtkIdList* idList);
64 
72 
74 
76  {
77  return this->AtomicInsertionId - 1;
78  }
80 
82 
84  {
85  if ( !this->HashTable )
86  {
87  return 0;
88  }
89  vtkIdList* bucket = this->HashTable[idx];
90  return bucket ? bucket->GetNumberOfIds() : 0;
91  }
93 
95 
97  {
98  return this->NumberOfBuckets;
99  }
101 
102 protected:
105 
107 
108 private:
109  vtkSMPMergePoints(const vtkSMPMergePoints&); // Not implemented
110  void operator=(const vtkSMPMergePoints&); // Not implemented
111 };
112 
113 #endif // vtkSMPMergePoints_h__
vtkSMPMergePoints::Merge
void Merge(vtkSMPMergePoints *locator, vtkIdType idx, vtkPointData *outPd, vtkPointData *inPd, vtkIdList *idList)
VTKFILTERSSMP_EXPORT
#define VTKFILTERSSMP_EXPORT
Definition: vtkFiltersSMPModule.h:15
vtkSMPMergePoints::New
static vtkSMPMergePoints * New()
vtkSMPMergePoints::InitializeMerge
void InitializeMerge()
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:37
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkSMPMergePoints::FixSizeOfPointArray
void FixSizeOfPointArray()
vtkSMPMergePoints::GetNumberOfBuckets
vtkIdType GetNumberOfBuckets()
Definition: vtkSMPMergePoints.h:96
vtkSMPMergePoints::AtomicInsertionId
vtkAtomicIdType AtomicInsertionId
Definition: vtkSMPMergePoints.h:106
vtkSMPMergePoints::vtkSMPMergePoints
vtkSMPMergePoints()
vtkAtomic< vtkIdType >
vtkSMPMergePoints::GetNumberOfIdsInBucket
vtkIdType GetNumberOfIdsInBucket(vtkIdType idx)
Definition: vtkSMPMergePoints.h:83
vtkMergePoints.h
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkPointLocator::NumberOfBuckets
vtkIdType NumberOfBuckets
Definition: vtkPointLocator.h:231
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:36
vtkSMPMergePoints::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkSMPMergePoints::GetMaxId
vtkIdType GetMaxId()
Definition: vtkSMPMergePoints.h:75
vtkAtomicTypes.h
vtkFiltersSMPModule.h
vtkIdList::GetNumberOfIds
vtkIdType GetNumberOfIds()
Definition: vtkIdList.h:50
vtkSMPMergePoints
Class designed to help with merging of points in parallel.
Definition: vtkSMPMergePoints.h:41
vtkIdList.h
vtkMergePoints
merge exactly coincident points
Definition: vtkMergePoints.h:36
vtkSMPMergePoints::~vtkSMPMergePoints
~vtkSMPMergePoints()