VTK
vtkSegYReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSegYReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm 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 vtkSegYReader_h
17 #define vtkSegYReader_h
18 
19 #include "vtkDataSetAlgorithm.h"
20 
21 #include <vtkIOSegYModule.h> // For export macro
22 
23 // Forward declarations
24 class vtkImageData;
26 
39 class VTKIOSEGY_EXPORT vtkSegYReader : public vtkDataSetAlgorithm
40 {
41 public:
42  static vtkSegYReader* New();
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45  vtkSegYReader();
46  ~vtkSegYReader() override;
47 
48  vtkSetStringMacro(FileName);
49  vtkGetStringMacro(FileName);
50 
52  {
53  VTK_SEGY_SOURCE = 0, // default
54  VTK_SEGY_CDP = 1,
55  VTK_SEGY_CUSTOM = 2
56  };
57 
59 
68  vtkSetClampMacro(XYCoordMode, int, VTK_SEGY_SOURCE, VTK_SEGY_CUSTOM);
69  vtkGetMacro(XYCoordMode, int);
70  void SetXYCoordModeToSource();
71  void SetXYCoordModeToCDP();
72  void SetXYCoordModeToCustom();
74 
76 
82  vtkSetMacro(XCoordByte, int);
83  vtkGetMacro(XCoordByte, int);
84  vtkSetMacro(YCoordByte, int);
85  vtkGetMacro(YCoordByte, int);
87 
89  {
90  VTK_SEGY_VERTICAL_HEIGHTS = 0, // default
91  VTK_SEGY_VERTICAL_DEPTHS
92  };
93 
95 
105  vtkSetMacro(VerticalCRS, int);
106  vtkGetMacro(VerticalCRS, int);
108 
110 
117  vtkSetMacro(StructuredGrid, int);
118  vtkGetMacro(StructuredGrid, int);
119  vtkBooleanMacro(StructuredGrid, int);
121 
122 protected:
123  int RequestData(vtkInformation* request,
124  vtkInformationVector** inputVector,
125  vtkInformationVector* outputVector) override;
126 
127  int RequestInformation(vtkInformation* request,
128  vtkInformationVector** inputVector,
129  vtkInformationVector* outputVector) override;
130  int RequestDataObject(vtkInformation* request,
131  vtkInformationVector** inputVector,
132  vtkInformationVector* outputVector) override;
133 
134 protected:
136  char *FileName;
137  bool Is3D;
138  double DataOrigin[3];
139  double DataSpacing[3][3];
140  int DataSpacingSign[3];
141  int DataExtent[6];
142 
145 
146  // Custom XY coordinate byte positions
149 
151 
152 
153 private:
154  vtkSegYReader(const vtkSegYReader&) = delete;
155  void operator=(const vtkSegYReader&) = delete;
156 };
157 
158 #endif // vtkSegYReader_h
Store vtkAlgorithm input/output information.
vtkSegYReaderInternal * Reader
Reads SegY data files.
Definition: vtkSegYReader.h:39
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:39
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks for Information.
Store zero or more vtkInformation instances.
Superclass for algorithms that produce output of the same type as input.
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called within ProcessRequest to when a request asks the algorithm to create empty output data...
static vtkDataSetAlgorithm * New()