vtkParticlePipeline.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
3 
4 #ifndef vtkParticlePipeline_h
5 #define vtkParticlePipeline_h
6 
7 #include "vtkCPPipeline.h"
8 #include "vtkPVAdaptorsParticleModule.h" // For export macros
9 
10 class vtkTrivialProducer;
12 class vtkSphereSource;
13 class vtkOutlineSource;
14 class vtkGlyph3DMapper;
15 class vtkPolyDataMapper;
16 class vtkActor;
17 class vtkLightKit;
20 class vtkRenderWindow;
21 class vtkRenderer;
23 class vtkPNGWriter;
24 
26 {
27 public:
28  static vtkParticlePipeline* New();
30  void PrintSelf(ostream& os, vtkIndent indent) override;
31 
32  int RequestDataDescription(vtkCPDataDescription* desc) override;
33 
34  int CoProcess(vtkCPDataDescription* desc) override;
35 
36  // Description:
37  // name of the image file to output
38  vtkSetStringMacro(Filename);
39  vtkGetStringMacro(Filename);
40 
41  // Description:
42  // radius of the sphere glyph to place on the particles
43  vtkSetMacro(ParticleRadius, double);
44  vtkGetMacro(ParticleRadius, double);
45 
46  // Description:
47  // angle of the camera around the mass of particles in the x-z plane
48  vtkSetMacro(CameraThetaAngle, double);
49  vtkGetMacro(CameraThetaAngle, double);
50 
51  // Description:
52  // angle the camera makes with the y axis (relative to particles' center)
53  vtkSetMacro(CameraPhiAngle, double);
54  vtkGetMacro(CameraPhiAngle, double);
55 
56  // Description:
57  // distance the camera is from the particles' center
58  // zero means to find the optimal viewing distance (default: zero)
59  vtkSetMacro(CameraDistance, double);
60  vtkGetMacro(CameraDistance, double);
61 
62  // Description:
63  // bounds of the particle space. This will be used to set the camera
64  // distance (if requested) and the box outline.
65  vtkSetVector6Macro(Bounds, double);
66  vtkGetVectorMacro(Bounds, double, 6);
67 
68  // Description:
69  // max and min value for the attributes to use in defining the color lookup
70  vtkSetMacro(AttributeMaximum, double);
71  vtkGetMacro(AttributeMaximum, double);
72  vtkSetMacro(AttributeMinimum, double);
73  vtkGetMacro(AttributeMinimum, double);
74 
75 protected:
77  ~vtkParticlePipeline() override;
78 
79  void SetupPipeline();
80 
81  char* Filename;
82 
84 
88 
89  double Bounds[6];
90 
93 
109 
110 private:
111  vtkParticlePipeline(const vtkParticlePipeline&) = delete;
112  void operator=(const vtkParticlePipeline&) = delete;
113 };
114 
115 #endif /* vtkParticlePipeline_h */
vtkSynchronizedRenderers subclass that uses IceT for parallel rendering and compositing.
vtkSynchronizedRenderWindows * syncWin
vtkPolyDataMapper * outlineMapper
void PrintSelf(ostream &os, vtkIndent indent) override
virtual int RequestDataDescription(vtkCPDataDescription *dataDescription)=0
Configuration Step: The coprocessor first determines if any coprocessing needs to be done at this Tim...
vtkGlyph3DMapper * particleMapper
vtkOutlineSource * outline
vtkIceTSynchronizedRenderers * syncRen
vtkTrivialProducer * input
virtual int CoProcess(vtkCPDataDescription *dataDescription)=0
Execute the pipeline. Returns 1 for success and 0 for failure.
Generic interface for operating on pipelines.
Definition: vtkCPPipeline.h:17
vtkSphereSource * sphere
vtkWindowToImageFilter * w2i
vtkRenderWindow * window
#define VTKPVADAPTORSPARTICLE_EXPORT
static vtkObject * New()
vtkColorTransferFunction * lut
This class provides the description of the data for the coprocessor pipelines.