Skip to content

Commit

Permalink
COMP: Disable copy of all VTK based objects
Browse files Browse the repository at this point in the history
This commit consistently prevents use of copy-ctor and =operator
for all VTK based objects.

It also replaces VTK_DELETE_FUNCTION with =delete to support
building against VTK >= Kitware/VTK@66f02acea (Deprecate: VTK_OVERRIDE,
VTK_FINAL, VTK_DELETE_FUNCTION. All of the above macros are now behind
a VTK_LEGACY_REMOVE check as we require a C++11 compiler and the macros
add no value.)

Co-authored-by: Andras Lasso <lasso@queensu.ca>
  • Loading branch information
jcfr and lassoan committed Apr 1, 2020
1 parent 0a8f06c commit 0290f72
Show file tree
Hide file tree
Showing 20 changed files with 75 additions and 12 deletions.
4 changes: 2 additions & 2 deletions CMake/vtkSlicerObjectFactory.h.in
Expand Up @@ -35,8 +35,8 @@ protected:
@vtk-module@ObjectFactory();

private:
@vtk-module@ObjectFactory(const @vtk-module@ObjectFactory&) VTK_DELETE_FUNCTION;
void operator=(const @vtk-module@ObjectFactory&) VTK_DELETE_FUNCTION;
@vtk-module@ObjectFactory(const @vtk-module@ObjectFactory&) = delete;
void operator=(const @vtk-module@ObjectFactory&) = delete;
};

#endif // __@vtk-module@ObjectFactory_h
4 changes: 4 additions & 0 deletions Libs/FreeSurfer/vtkFSSurfaceHelper.h
Expand Up @@ -37,6 +37,10 @@ class VTK_FreeSurfer_EXPORT vtkFSSurfaceHelper: public vtkObject

protected:
vtkFSSurfaceHelper();

private:
vtkFSSurfaceHelper(const vtkFSSurfaceHelper&) = delete;
void operator=(const vtkFSSurfaceHelper&) = delete;
};

#endif
4 changes: 4 additions & 0 deletions Libs/MRML/Logic/vtkImageLabelOutline.h
Expand Up @@ -51,6 +51,10 @@ class VTK_MRML_LOGIC_EXPORT vtkImageLabelOutline : public vtkImageNeighborhoodFi

void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
int extent[6], int id) override;

private:
vtkImageLabelOutline(const vtkImageLabelOutline&) = delete;
void operator=(const vtkImageLabelOutline&) = delete;
};

#endif
4 changes: 4 additions & 0 deletions Libs/MRML/Logic/vtkImageNeighborhoodFilter.h
Expand Up @@ -63,6 +63,10 @@ class VTK_MRML_LOGIC_EXPORT vtkImageNeighborhoodFilter : public vtkImageSpatialA

int Neighbor;
unsigned char *Mask;

private:
vtkImageNeighborhoodFilter(const vtkImageNeighborhoodFilter&) = delete;
void operator=(const vtkImageNeighborhoodFilter&) = delete;
};

#endif
4 changes: 4 additions & 0 deletions Libs/vtkITK/vtkITKArchetypeDiffusionTensorImageReaderFile.h
Expand Up @@ -30,6 +30,10 @@ class VTK_ITK_EXPORT vtkITKArchetypeDiffusionTensorImageReaderFile
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override;
static void ReadProgressCallback(itk::ProcessObject* obj,const itk::ProgressEvent&, void* data);
/// private:

private:
vtkITKArchetypeDiffusionTensorImageReaderFile(const vtkITKArchetypeDiffusionTensorImageReaderFile&) = delete;
void operator=(const vtkITKArchetypeDiffusionTensorImageReaderFile&) = delete;
};

#endif
4 changes: 4 additions & 0 deletions Libs/vtkITK/vtkITKArchetypeImageSeriesScalarReader.h
Expand Up @@ -34,6 +34,10 @@ class VTK_ITK_EXPORT vtkITKArchetypeImageSeriesScalarReader : public vtkITKArche
int RequestData(vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector) override;
static void ReadProgressCallback(itk::ProcessObject* obj,const itk::ProgressEvent&, void* data);
/// private:

private:
vtkITKArchetypeImageSeriesScalarReader(const vtkITKArchetypeImageSeriesScalarReader&) = delete;
void operator=(const vtkITKArchetypeImageSeriesScalarReader&) = delete;
};

#endif
5 changes: 4 additions & 1 deletion Libs/vtkITK/vtkITKArchetypeImageSeriesVectorReaderFile.h
Expand Up @@ -28,7 +28,10 @@ class VTK_ITK_EXPORT vtkITKArchetypeImageSeriesVectorReaderFile : public vtkITKA

void ExecuteDataWithInformation(vtkDataObject *output, vtkInformation *outInfo) override;
static void ReadProgressCallback(itk::ProcessObject* obj,const itk::ProgressEvent&, void* data);
/// private:

private:
vtkITKArchetypeImageSeriesVectorReaderFile(const vtkITKArchetypeImageSeriesVectorReaderFile&) = delete;
void operator=(const vtkITKArchetypeImageSeriesVectorReaderFile&) = delete;
};

#endif
4 changes: 4 additions & 0 deletions Libs/vtkITK/vtkITKArchetypeImageSeriesVectorReaderSeries.h
Expand Up @@ -33,6 +33,10 @@ class VTK_ITK_EXPORT vtkITKArchetypeImageSeriesVectorReaderSeries : public vtkIT
~vtkITKArchetypeImageSeriesVectorReaderSeries() override;

void ExecuteDataWithInformation(vtkDataObject *output, vtkInformation *outInfo) override;

private:
vtkITKArchetypeImageSeriesVectorReaderSeries(const vtkITKArchetypeImageSeriesVectorReaderSeries&) = delete;
void operator=(const vtkITKArchetypeImageSeriesVectorReaderSeries&) = delete;
};

#endif
Expand Up @@ -95,13 +95,15 @@ class vtkSegmentationCore_EXPORT vtkBinaryLabelmapToClosedSurfaceConversionRule
protected:
vtkBinaryLabelmapToClosedSurfaceConversionRule();
~vtkBinaryLabelmapToClosedSurfaceConversionRule() override;
void operator=(const vtkBinaryLabelmapToClosedSurfaceConversionRule&);

protected:
/// Cache for storing merged closed surfaces that have been joint smoothed
/// The key used is the binary labelmap representation, which maps to the combined vtkPolyData containing surfaces for all segments in the segmentation
std::map<vtkOrientedImageData*, vtkSmartPointer<vtkPolyData> > JointSmoothCache;

private:
vtkBinaryLabelmapToClosedSurfaceConversionRule(const vtkBinaryLabelmapToClosedSurfaceConversionRule&) = delete;
void operator=(const vtkBinaryLabelmapToClosedSurfaceConversionRule&) = delete;
};

#endif // __vtkBinaryLabelmapToClosedSurfaceConversionRule_h
Expand Up @@ -109,7 +109,10 @@ class vtkSegmentationCore_EXPORT vtkClosedSurfaceToBinaryLabelmapConversionRule
protected:
vtkClosedSurfaceToBinaryLabelmapConversionRule();
~vtkClosedSurfaceToBinaryLabelmapConversionRule() override;
void operator=(const vtkClosedSurfaceToBinaryLabelmapConversionRule&);

private:
vtkClosedSurfaceToBinaryLabelmapConversionRule(const vtkClosedSurfaceToBinaryLabelmapConversionRule&) = delete;
void operator=(const vtkClosedSurfaceToBinaryLabelmapConversionRule&) = delete;
};

#endif // __vtkClosedSurfaceToBinaryLabelmapConversionRule_h
Expand Up @@ -84,7 +84,10 @@ class vtkSegmentationCore_EXPORT vtkClosedSurfaceToFractionalLabelmapConversionR

vtkClosedSurfaceToFractionalLabelmapConversionRule();
~vtkClosedSurfaceToFractionalLabelmapConversionRule() override;
void operator=(const vtkClosedSurfaceToFractionalLabelmapConversionRule&);

private:
vtkClosedSurfaceToFractionalLabelmapConversionRule(const vtkClosedSurfaceToFractionalLabelmapConversionRule&) = delete;
void operator=(const vtkClosedSurfaceToFractionalLabelmapConversionRule&) = delete;
};

#endif // __vtkClosedSurfaceToFractionalLabelmapConversionRule_h
Expand Up @@ -79,7 +79,10 @@ class vtkSegmentationCore_EXPORT vtkFractionalLabelmapToClosedSurfaceConversionR
protected:
vtkFractionalLabelmapToClosedSurfaceConversionRule();
~vtkFractionalLabelmapToClosedSurfaceConversionRule() override;
void operator=(const vtkFractionalLabelmapToClosedSurfaceConversionRule&);

private:
vtkFractionalLabelmapToClosedSurfaceConversionRule(const vtkFractionalLabelmapToClosedSurfaceConversionRule&) = delete;
void operator=(const vtkFractionalLabelmapToClosedSurfaceConversionRule&) = delete;
};

#endif // __vtkFractionalLabelmapToClosedSurfaceConversionRule_h
5 changes: 4 additions & 1 deletion Libs/vtkSegmentationCore/vtkSegment.h
Expand Up @@ -141,7 +141,6 @@ class vtkSegmentationCore_EXPORT vtkSegment : public vtkObject
protected:
vtkSegment();
~vtkSegment() override;
void operator=(const vtkSegment&);

protected:
/// Stored representations. Map from type string to data object
Expand All @@ -153,6 +152,10 @@ class vtkSegmentationCore_EXPORT vtkSegment : public vtkObject
bool NameAutoGenerated;
bool ColorAutoGenerated;
int LabelValue;

private:
vtkSegment(const vtkSegment&) = delete;
void operator=(const vtkSegment&) = delete;
};

#endif // __vtkSegment_h
5 changes: 4 additions & 1 deletion Libs/vtkSegmentationCore/vtkSegmentation.h
Expand Up @@ -512,7 +512,6 @@ class vtkSegmentationCore_EXPORT vtkSegmentation : public vtkObject
protected:
vtkSegmentation();
~vtkSegmentation() override;
void operator=(const vtkSegmentation&);

protected:
/// Container of segments that belong to this segmentation
Expand Down Expand Up @@ -554,6 +553,10 @@ class vtkSegmentationCore_EXPORT vtkSegmentation : public vtkObject
friend class vtkSlicerSegmentationsModuleLogic;
friend class vtkSegmentationModifier;
friend class qMRMLSegmentEditorWidgetPrivate;

private:
vtkSegmentation(const vtkSegmentation&) = delete;
void operator=(const vtkSegmentation&) = delete;
};

#endif // __vtkSegmentation_h
5 changes: 4 additions & 1 deletion Libs/vtkSegmentationCore/vtkSegmentationConverter.h
Expand Up @@ -170,7 +170,6 @@ class vtkSegmentationCore_EXPORT vtkSegmentationConverter : public vtkObject
protected:
vtkSegmentationConverter();
~vtkSegmentationConverter() override;
void operator=(const vtkSegmentationConverter&);

protected:
/// Converter rules. When the class is created it contains just the default converter rules but then
Expand All @@ -185,6 +184,10 @@ class vtkSegmentationCore_EXPORT vtkSegmentationConverter : public vtkObject

/// Source representation to target representation rule graph
RepresentationToRepresentationToRuleMapType RulesGraph;

private:
vtkSegmentationConverter(const vtkSegmentationConverter&) = delete;
void operator=(const vtkSegmentationConverter&) = delete;
};

#endif // __vtkSegmentationConverter_h
5 changes: 4 additions & 1 deletion Libs/vtkSegmentationCore/vtkSegmentationHistory.h
Expand Up @@ -103,7 +103,6 @@ class vtkSegmentationCore_EXPORT vtkSegmentationHistory : public vtkObject
protected:
vtkSegmentationHistory();
~vtkSegmentationHistory() override;
void operator=(const vtkSegmentationHistory&);

typedef std::map<std::string, vtkSmartPointer<vtkSegment> > SegmentsMap;

Expand All @@ -124,6 +123,10 @@ class vtkSegmentationCore_EXPORT vtkSegmentationHistory : public vtkObject
unsigned int LastRestoredState;

bool RestoreStateInProgress;

private:
vtkSegmentationHistory(const vtkSegmentationHistory&) = delete;
void operator=(const vtkSegmentationHistory&) = delete;
};

#endif // __vtkSegmentation_h
Expand Up @@ -311,7 +311,9 @@ class VTK_SLICER_ANNOTATIONS_MODULE_LOGIC_EXPORT vtkSlicerAnnotationModuleLogic
/// a parent to the new hierarchy node. Return true on success, false on failure.
bool AddHierarchyNodeForAnnotation(vtkMRMLAnnotationNode* annotationNode=nullptr);


private:
vtkSlicerAnnotationModuleLogic(const vtkSlicerAnnotationModuleLogic&) = delete;
void operator=(const vtkSlicerAnnotationModuleLogic&) = delete;
};

#endif
Expand Up @@ -105,6 +105,9 @@ class VTK_SLICER_SCENEVIEWS_MODULE_LOGIC_EXPORT vtkSlicerSceneViewsModuleLogic :

std::string m_StringHolder;

private:
vtkSlicerSceneViewsModuleLogic(const vtkSlicerSceneViewsModuleLogic&) = delete;
void operator=(const vtkSlicerSceneViewsModuleLogic&) = delete;
};

#endif
4 changes: 4 additions & 0 deletions Modules/Scripted/EditorLib/Logic/vtkImageErode.h
Expand Up @@ -43,6 +43,10 @@ class VTK_SLICER_EDITORLIB_MODULE_LOGIC_EXPORT vtkImageErode : public vtkImageNe

void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
int extent[6], int id) override;

private:
vtkImageErode(const vtkImageErode&) = delete;
void operator=(const vtkImageErode&) = delete;
};

#endif
Expand Down
4 changes: 4 additions & 0 deletions Modules/Scripted/EditorLib/Logic/vtkPichonFastMarching.h
Expand Up @@ -216,6 +216,10 @@ class VTK_SLICER_EDITORLIB_MODULE_LOGIC_EXPORT vtkPichonFastMarching
/* perform one step of fast marching
return the leaf which has just been added to fmsKNOWN */
float step();

private:
vtkPichonFastMarching(const vtkPichonFastMarching&) = delete;
void operator=(const vtkPichonFastMarching&) = delete;
};

#endif
Expand Down

0 comments on commit 0290f72

Please sign in to comment.