vtkParticlePipeline.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkParticlePipeline.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 =========================================================================*/
15 
16 #ifndef vtkParticlePipeline_H
17 #define vtkParticlePipeline_H
18 
19 #include "vtkCPPipeline.h"
20 #include "vtkPVAdaptorsParticleModule.h" // For export macros
21 
22 class vtkTrivialProducer;
24 class vtkSphereSource;
25 class vtkOutlineSource;
26 class vtkGlyph3DMapper;
27 class vtkPolyDataMapper;
28 class vtkActor;
29 class vtkLightKit;
32 class vtkRenderWindow;
33 class vtkRenderer;
35 class vtkPNGWriter;
36 
37 class VTKPVADAPTORSPARTICLE_EXPORT vtkParticlePipeline : public vtkCPPipeline
38 {
39 public:
40  static vtkParticlePipeline* New();
42  void PrintSelf(ostream& os, vtkIndent indent);
43 
45 
46  virtual int CoProcess(vtkCPDataDescription* desc);
47 
48  // Description:
49  // name of the image file to output
50  vtkSetStringMacro(Filename);
51  vtkGetStringMacro(Filename);
52 
53  // Description:
54  // radius of the sphere glyph to place on the particles
55  vtkSetMacro(ParticleRadius, double);
56  vtkGetMacro(ParticleRadius, double);
57 
58  // Description:
59  // angle of the camera around the mass of particles in the x-z plane
60  vtkSetMacro(CameraThetaAngle, double);
61  vtkGetMacro(CameraThetaAngle, double);
62 
63  // Description:
64  // angle the camera makes with the y axis (relative to particles' center)
65  vtkSetMacro(CameraPhiAngle, double);
66  vtkGetMacro(CameraPhiAngle, double);
67 
68  // Description:
69  // distance the camera is from the particles' center
70  // zero means to find the optimal viewing distance (default: zero)
71  vtkSetMacro(CameraDistance, double);
72  vtkGetMacro(CameraDistance, double);
73 
74  // Description:
75  // bounds of the particle space. This will be used to set the camera
76  // distance (if requested) and the box outline.
77  vtkSetVector6Macro(Bounds, double);
78  vtkGetVectorMacro(Bounds, double, 6);
79 
80  // Description:
81  // max and min value for the attributes to use in defining the color lookup
82  vtkSetMacro(AttributeMaximum, double);
83  vtkGetMacro(AttributeMaximum, double);
84  vtkSetMacro(AttributeMinimum, double);
85  vtkGetMacro(AttributeMinimum, double);
86 
87 protected:
89  virtual ~vtkParticlePipeline();
90 
91  void SetupPipeline();
92 
93  char* Filename;
94 
96 
100 
101  double Bounds[6];
102 
105 
121 
122 private:
123  vtkParticlePipeline(const vtkParticlePipeline&) = delete;
124  void operator=(const vtkParticlePipeline&) = delete;
125 };
126 
127 #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:29
vtkSphereSource * sphere
vtkWindowToImageFilter * w2i
vtkRenderWindow * window
static vtkObject * New()
vtkColorTransferFunction * lut
This class provides the description of the data for the coprocessor pipelines.