File: vtkBYUReader.h

package info (click to toggle)
paraview 5.13.2%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 544,220 kB
  • sloc: cpp: 3,374,605; ansic: 1,332,409; python: 150,381; xml: 122,166; sql: 65,887; sh: 7,317; javascript: 5,262; yacc: 4,417; java: 3,977; perl: 2,363; lex: 1,929; f90: 1,397; makefile: 170; objc: 153; tcl: 59; pascal: 50; fortran: 29
file content (141 lines) | stat: -rw-r--r-- 3,782 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/**
 * @class   vtkBYUReader
 * @brief   read MOVIE.BYU polygon files
 *
 * vtkBYUReader is a source object that reads MOVIE.BYU polygon files.
 * These files consist of a geometry file (.g), a scalar file (.s), a
 * displacement or vector file (.d), and a 2D texture coordinate file
 * (.t).
 */

#ifndef vtkBYUReader_h
#define vtkBYUReader_h

#include "vtkIOGeometryModule.h" // For export macro
#include "vtkPolyDataAlgorithm.h"

VTK_ABI_NAMESPACE_BEGIN
class VTKIOGEOMETRY_EXPORT vtkBYUReader : public vtkPolyDataAlgorithm
{
public:
  static vtkBYUReader* New();

  vtkTypeMacro(vtkBYUReader, vtkPolyDataAlgorithm);
  void PrintSelf(ostream& os, vtkIndent indent) override;

  ///@{
  /**
   * Specify name of geometry FileName.
   */
  vtkSetFilePathMacro(GeometryFileName);
  vtkGetFilePathMacro(GeometryFileName);
  ///@}

  /**
   * Specify name of geometry FileName (alias).
   */
  virtual void SetFileName(VTK_FILEPATH const char* f) { this->SetGeometryFileName(f); }
  virtual VTK_FILEPATH VTK_FUTURE_CONST char* GetFileName() VTK_FUTURE_CONST
  {
    return this->GetGeometryFileName();
  }

  ///@{
  /**
   * Specify name of displacement FileName.
   */
  vtkSetFilePathMacro(DisplacementFileName);
  vtkGetFilePathMacro(DisplacementFileName);
  ///@}

  ///@{
  /**
   * Specify name of scalar FileName.
   */
  vtkSetFilePathMacro(ScalarFileName);
  vtkGetFilePathMacro(ScalarFileName);
  ///@}

  ///@{
  /**
   * Specify name of texture coordinates FileName.
   */
  vtkSetFilePathMacro(TextureFileName);
  vtkGetFilePathMacro(TextureFileName);
  ///@}

  ///@{
  /**
   * Turn on/off the reading of the displacement file.
   */
  vtkSetMacro(ReadDisplacement, vtkTypeBool);
  vtkGetMacro(ReadDisplacement, vtkTypeBool);
  vtkBooleanMacro(ReadDisplacement, vtkTypeBool);
  ///@}

  ///@{
  /**
   * Turn on/off the reading of the scalar file.
   */
  vtkSetMacro(ReadScalar, vtkTypeBool);
  vtkGetMacro(ReadScalar, vtkTypeBool);
  vtkBooleanMacro(ReadScalar, vtkTypeBool);
  ///@}

  ///@{
  /**
   * Turn on/off the reading of the texture coordinate file.
   * Specify name of geometry FileName.
   */
  vtkSetMacro(ReadTexture, vtkTypeBool);
  vtkGetMacro(ReadTexture, vtkTypeBool);
  vtkBooleanMacro(ReadTexture, vtkTypeBool);
  ///@}

  ///@{
  /**
   * Set/Get the part number to be read.
   */
  vtkSetClampMacro(PartNumber, int, 1, VTK_INT_MAX);
  vtkGetMacro(PartNumber, int);
  ///@}

  /**
   * Returns 1 if this file can be read and 0 if the file cannot be read.
   * Because BYU files do not have anything in the header specifying the file
   * type, the result is not definitive.  Invalid files may still return 1
   * although a valid file will never return 0.
   */
  static int CanReadFile(VTK_FILEPATH const char* filename);

protected:
  vtkBYUReader();
  ~vtkBYUReader() override;

  int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
  // This source does not know how to generate pieces yet.
  int ComputeDivisionExtents(vtkDataObject* output, int idx, int numDivisions);

  char* GeometryFileName;
  char* DisplacementFileName;
  char* ScalarFileName;
  char* TextureFileName;
  vtkTypeBool ReadDisplacement;
  vtkTypeBool ReadScalar;
  vtkTypeBool ReadTexture;
  int PartNumber;

  void ReadGeometryFile(FILE* fp, int& numPts, vtkInformation* outInfo);
  void ReadDisplacementFile(int numPts, vtkInformation* outInfo);
  void ReadScalarFile(int numPts, vtkInformation* outInfo);
  void ReadTextureFile(int numPts, vtkInformation* outInfo);

private:
  vtkBYUReader(const vtkBYUReader&) = delete;
  void operator=(const vtkBYUReader&) = delete;
};

VTK_ABI_NAMESPACE_END
#endif