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 
25 class VTKPVADAPTORSPARTICLE_EXPORT vtkParticlePipeline : public vtkCPPipeline
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 */
vtkPolyDataMapper
vtkParticlePipeline::window
vtkRenderWindow * window
Definition: vtkParticlePipeline.h:105
vtkOutlineSource
vtkParticlePipeline::particleMapper
vtkGlyph3DMapper * particleMapper
Definition: vtkParticlePipeline.h:98
vtkCPPipeline
Definition: vtkCPPipeline.h:17
vtkObject::New
static vtkObject * New()
vtkParticlePipeline::syncWin
vtkSynchronizedRenderWindows * syncWin
Definition: vtkParticlePipeline.h:104
vtkParticlePipeline::CameraDistance
double CameraDistance
Definition: vtkParticlePipeline.h:87
vtkWindowToImageFilter
vtkParticlePipeline::outlineActor
vtkActor * outlineActor
Definition: vtkParticlePipeline.h:101
vtkPNGWriter
vtkColorTransferFunction
vtkTrivialProducer
vtkParticlePipeline::w2i
vtkWindowToImageFilter * w2i
Definition: vtkParticlePipeline.h:107
vtkParticlePipeline::lut
vtkColorTransferFunction * lut
Definition: vtkParticlePipeline.h:95
vtkParticlePipeline::renderer
vtkRenderer * renderer
Definition: vtkParticlePipeline.h:106
vtkParticlePipeline::Filename
char * Filename
Definition: vtkParticlePipeline.h:81
vtkParticlePipeline::syncRen
vtkIceTSynchronizedRenderers * syncRen
Definition: vtkParticlePipeline.h:103
vtkCPPipeline.h
vtkParticlePipeline::AttributeMinimum
double AttributeMinimum
Definition: vtkParticlePipeline.h:92
vtkParticlePipeline::CameraPhiAngle
double CameraPhiAngle
Definition: vtkParticlePipeline.h:86
vtkParticlePipeline::outline
vtkOutlineSource * outline
Definition: vtkParticlePipeline.h:97
vtkParticlePipeline::input
vtkTrivialProducer * input
Definition: vtkParticlePipeline.h:94
vtkSphereSource
vtkCPDataDescription
Definition: vtkCPDataDescription.h:15
vtkGlyph3DMapper
vtkCPPipeline::CoProcess
virtual int CoProcess(vtkCPDataDescription *dataDescription)=0
Execute the pipeline. Returns 1 for success and 0 for failure.
vtkIceTSynchronizedRenderers
vtkSynchronizedRenderers subclass that uses IceT for parallel rendering and compositing.
Definition: vtkIceTSynchronizedRenderers.h:29
vtkParticlePipeline::lightKit
vtkLightKit * lightKit
Definition: vtkParticlePipeline.h:102
vtkActor
vtkParticlePipeline::outlineMapper
vtkPolyDataMapper * outlineMapper
Definition: vtkParticlePipeline.h:99
vtkIndent
vtkSynchronizedRenderWindows
vtkParticlePipeline::sphere
vtkSphereSource * sphere
Definition: vtkParticlePipeline.h:96
vtkParticlePipeline::writer
vtkPNGWriter * writer
Definition: vtkParticlePipeline.h:108
vtkParticlePipeline::CameraThetaAngle
double CameraThetaAngle
Definition: vtkParticlePipeline.h:85
vtkParticlePipeline
Definition: vtkParticlePipeline.h:25
vtkRenderer
vtkCPPipeline::RequestDataDescription
virtual int RequestDataDescription(vtkCPDataDescription *dataDescription)=0
Configuration Step: The coprocessor first determines if any coprocessing needs to be done at this Tim...
vtkRenderWindow
vtkParticlePipeline::AttributeMaximum
double AttributeMaximum
Definition: vtkParticlePipeline.h:91
vtkParticlePipeline::particleActor
vtkActor * particleActor
Definition: vtkParticlePipeline.h:100
vtkCPPipeline::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
vtkParticlePipeline::ParticleRadius
double ParticleRadius
Definition: vtkParticlePipeline.h:83
vtkLightKit