VTK  9.7.1
vtkOCCTReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2019-2021 Kitware SAS
3 // SPDX-FileCopyrightText: Copyright 2021-2022 Michael Migliore, Mathieu Westphal
4 // SPDX-License-Identifier: BSD-3-Clause
24 #ifndef vtkOCCTReader_h
25 #define vtkOCCTReader_h
26 
28 
29 #include "vtkIOOCCTModule.h" // For export macro
30 
31 #include <memory> // For std::unique_ptr
32 
33 VTK_ABI_NAMESPACE_BEGIN
34 
36 
37 class VTKIOOCCT_EXPORT vtkOCCTReader : public vtkMultiBlockDataSetAlgorithm
38 {
39 public:
40  static vtkOCCTReader* New();
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
44  enum Format : unsigned int
45  {
47  IGES
48  };
49 
51 
56  vtkSetClampMacro(FileFormat, unsigned int, Format::STEP, Format::IGES);
58 
60 
65  vtkGetMacro(LinearDeflection, double);
66  vtkSetMacro(LinearDeflection, double);
68 
70 
75  vtkGetMacro(AngularDeflection, double);
76  vtkSetMacro(AngularDeflection, double);
78 
80 
85  vtkGetMacro(RelativeDeflection, bool);
86  vtkSetMacro(RelativeDeflection, bool);
87  vtkBooleanMacro(RelativeDeflection, bool);
89 
91 
95  vtkGetMacro(ReadWire, bool);
96  vtkSetMacro(ReadWire, bool);
97  vtkBooleanMacro(ReadWire, bool);
99 
101 
104  vtkSetFilePathMacro(FileName);
105  vtkGetFilePathMacro(FileName);
107 
108 protected:
109  vtkOCCTReader();
110  ~vtkOCCTReader() override;
111 
113 
114 private:
115  vtkOCCTReader(const vtkOCCTReader&) = delete;
116  void operator=(const vtkOCCTReader&) = delete;
117 
118  class vtkInternals;
119  std::unique_ptr<vtkInternals> Internals;
120 
121  double LinearDeflection = 0.1;
122  double AngularDeflection = 0.5;
123  bool RelativeDeflection = false;
124  bool ReadWire = false;
125  unsigned int FileFormat = Format::STEP;
126  char* FileName = nullptr;
127 };
128 
129 VTK_ABI_NAMESPACE_END
130 #endif
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
static vtkMultiBlockDataSetAlgorithm * New()
Key for double vector values.
a simple class to control print indentation
Definition: vtkIndent.h:28
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
VTK Reader for STEP and IGES files using OpenCASCADE.
Definition: vtkOCCTReader.h:37
Store zero or more vtkInformation instances.