PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
vtkPlusUsSimulatorAlgo.h
Go to the documentation of this file.
1 /*=Plus=header=begin======================================================
2  Program: Plus
3  Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved.
4  See License.txt for details.
5 =========================================================Plus=header=end*/
6 
7 #ifndef __vtkPlusUsSimulatorAlgo_h
8 #define __vtkPlusUsSimulatorAlgo_h
9 
10 #include "vtkPlusUsSimulatorExport.h"
11 
12 #include "vtkImageAlgorithm.h"
13 
14 #include "PlusSpatialModel.h"
15 #include "vtkIGSIOTransformRepository.h"
16 
17 class vtkPolyDataNormals;
18 class vtkTriangleFilter;
19 class vtkStripper;
20 class vtkModifiedBSPTree;
21 class vtkPlusRfProcessor;
22 
28 class vtkPlusUsSimulatorExport vtkPlusUsSimulatorAlgo : public vtkImageAlgorithm
29 {
30 public:
31  vtkTypeMacro(vtkPlusUsSimulatorAlgo, vtkImageAlgorithm);
32  void PrintSelf(ostream& os, vtkIndent indent);
33  static vtkPlusUsSimulatorAlgo* New();
34 
36  virtual PlusStatus ReadConfiguration(vtkXMLDataElement* config);
37 
38 public:
39 
41  vtkSetObjectMacro(TransformRepository, vtkIGSIOTransformRepository);
43  vtkGetObjectMacro(TransformRepository, vtkIGSIOTransformRepository);
44 
46  vtkGetObjectMacro( RfProcessor, vtkPlusRfProcessor );
47 
49  vtkSetStringMacro(ImageCoordinateFrame);
51  vtkGetStringMacro(ImageCoordinateFrame);
52 
54  vtkSetStringMacro(ReferenceCoordinateFrame);
56  vtkGetStringMacro(ReferenceCoordinateFrame);
57 
59  vtkSetMacro(FrequencyMhz, double);
61  vtkGetMacro(FrequencyMhz, double);
62 
64  vtkSetMacro(IncomingIntensityMwPerCm2, double);
66  vtkGetMacro(IncomingIntensityMwPerCm2, double);
67 
71  vtkGetMacro(BrightnessConversionGamma, double);
75  vtkSetMacro(BrightnessConversionGamma, double);
76 
80  vtkGetMacro(BrightnessConversionOffset, double);
84  vtkSetMacro(BrightnessConversionOffset, double);
85 
89  vtkGetMacro(BrightnessConversionScale, double);
93  vtkSetMacro(BrightnessConversionScale, double);
94 
96  vtkSetMacro(NumberOfScanlines, int);
97 
99  vtkSetMacro(NumberOfSamplesPerScanline, int);
100 
101  PlusStatus GetFrameSize(FrameSizeType& frameSize);
102 
103  vtkSetMacro(NoiseAmplitude, double);
104  vtkSetVector3Macro(NoiseFrequency, double);
105  vtkSetVector3Macro(NoisePhase, double);
106 
107 protected:
108  virtual int FillOutputPortInformation(int port, vtkInformation* info);
109  virtual int RequestData(vtkInformation* request,
110  vtkInformationVector** inputVector,
111  vtkInformationVector* outputVector);
112 
113  void ConvertLineModelIntersectionsToSegmentDescriptor(std::deque<PlusSpatialModel::LineIntersectionInfo>& lineIntersectionsWithModels);
114 
115 protected:
118 
119 private:
120 
122  vtkIGSIOTransformRepository* TransformRepository;
123 
125  char* ImageCoordinateFrame;
126 
128  char* ReferenceCoordinateFrame;
129 
131  int NumberOfScanlines;
132 
134  int NumberOfSamplesPerScanline;
135 
136  vtkPlusRfProcessor* RfProcessor;
137 
139  double FrequencyMhz;
140 
144  double BrightnessConversionGamma;
145 
147  double BrightnessConversionOffset;
148 
150  double BrightnessConversionScale;
151 
153  double IncomingIntensityMwPerCm2;
154 
155  std::vector<PlusSpatialModel> SpatialModels;
156 
158  PlusSpatialModel TransducerSpatialModel;
159 
160  std::vector<double> InsideObjectReflection;
161  std::vector<double> OutsideObjectReflection;
162 
163  double NoiseAmplitude;
164  double NoiseFrequency[3];
165  double NoisePhase[3];
166 };
167 
168 #endif // __vtkPlusUsSimulatorAlgo_h
igsioStatus PlusStatus
Definition: PlusCommon.h:40
int port
Definition: phidget22.h:2454
Convenience class to combine multiple algorithms to compute a displayable B-mode frame from RF data.
Class that simulates ultrasound images from multiple surface models.