ParaView
vtkPVGlyphFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkPVGlyphFilter.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
40 #ifndef vtkPVGlyphFilter_h
41 #define vtkPVGlyphFilter_h
42 
43 #include "vtkGlyph3D.h"
44 #include "vtkPVVTKExtensionsDefaultModule.h" //needed for exports
45 
46 class vtkMultiProcessController;
47 
48 class VTKPVVTKEXTENSIONSDEFAULT_EXPORT vtkPVGlyphFilter : public vtkGlyph3D
49 {
50 public:
52  {
55  SPATIALLY_UNIFORM_DISTRIBUTION
56  };
57 
58  vtkTypeMacro(vtkPVGlyphFilter, vtkGlyph3D);
59  void PrintSelf(ostream& os, vtkIndent indent);
60  static vtkPVGlyphFilter* New();
61 
63 
67  void SetController(vtkMultiProcessController*);
68  vtkGetObjectMacro(Controller, vtkMultiProcessController);
70 
72 
75  vtkSetClampMacro(GlyphMode, int, ALL_POINTS, SPATIALLY_UNIFORM_DISTRIBUTION);
76  vtkGetMacro(GlyphMode, int);
78 
80 
84  vtkSetClampMacro(Stride, int, 1, VTK_INT_MAX);
85  vtkGetMacro(Stride, int);
87 
89 
92  vtkSetMacro(Seed, int);
93  vtkGetMacro(Seed, int);
95 
97 
101  vtkSetClampMacro(MaximumNumberOfSamplePoints, int, 1, VTK_INT_MAX);
102  vtkGetMacro(MaximumNumberOfSamplePoints, int);
104 
106 
109  virtual int ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
110 
111 protected:
113  ~vtkPVGlyphFilter();
115 
116  // Standard Pipeline methods
117  virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
118  virtual int RequestDataObject(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
119  virtual int FillInputPortInformation(int, vtkInformation*);
120  virtual int FillOutputPortInformation(int, vtkInformation*);
121 
125  virtual int IsPointVisible(vtkDataSet* ds, vtkIdType ptId);
126 
130  bool IsInputArrayToProcessValid(vtkDataSet* input);
131 
135  bool UseCellCenters(vtkDataSet* input);
136 
142  virtual bool ExecuteWithCellCenters(
143  vtkDataSet* input, vtkInformationVector* sourceVector, vtkPolyData* output);
144 
147  int Seed;
148  int Stride;
149  vtkMultiProcessController* Controller;
150 
151 private:
152  vtkPVGlyphFilter(const vtkPVGlyphFilter&) VTK_DELETE_FUNCTION;
153  void operator=(const vtkPVGlyphFilter&) VTK_DELETE_FUNCTION;
154 
155  class vtkInternals;
156  vtkInternals* Internals;
157 };
158 
159 #endif
vtkMultiProcessController * Controller
extended API for vtkGlyph3D for better control over glyph placement.