File: vtkOMETIFFReader.h

package info (click to toggle)
paraview 5.13.2%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, 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 (65 lines) | stat: -rw-r--r-- 2,335 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
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/**
 * @class vtkOMETIFFReader
 * @brief reader for OME TIFF files
 *
 * vtkOMETIFFReader supports reading OME-TIFF files. These are TIFF files with
 * OME meta-data that helps interpret the contents of the TIFF.
 *
 * The OME-TIFF specification is available here:
 * https://docs.openmicroscopy.org/ome-model/5.6.3/ome-tiff/specification.html#ome-tiff-specification
 *
 * The current implementation only supports single-file, multi-page TIFF. It
 * will not read multi-file OME-TIFF files correctly.
 *
 * Unlike most image readers, this reader does not support arbitrary sub-extent
 * requests. This is because the splicing of the `z`, `t`, and `c` planes can make it
 * tricky to read sub-extents in `z` for certain dimension orders. This reader
 * supports piece-request instead and satisfies such request by splitting the
 * `XY` plane into requested number of pieces.
 *
 * The reader lets the superclass read the whole TIFF volume and then splice it
 * up into channels, timesteps, and z-planes. The parts are then cached
 * internally so that subsequent timestep requests can be served without
 * re-reading the file.
 */

#ifndef vtkOMETIFFReader_h
#define vtkOMETIFFReader_h

#include "vtkTIFFReader.h"

VTK_ABI_NAMESPACE_BEGIN
class VTKIOIMAGE_EXPORT vtkOMETIFFReader : public vtkTIFFReader
{
public:
  static vtkOMETIFFReader* New();
  vtkTypeMacro(vtkOMETIFFReader, vtkTIFFReader);
  void PrintSelf(ostream& os, vtkIndent indent) override;

  ///@{
  int CanReadFile(VTK_FILEPATH const char* fname) override;
  const char* GetFileExtensions() override { return ".ome.tif .ome.tiff"; }
  const char* GetDescriptiveName() override { return "OME TIFF"; }
  ///@}

protected:
  vtkOMETIFFReader();
  ~vtkOMETIFFReader() override;

  int RequestInformation(vtkInformation* request, vtkInformationVector** inputVector,
    vtkInformationVector* outputVector) override;
  void ExecuteInformation() override;
  void ExecuteDataWithInformation(vtkDataObject* out, vtkInformation* outInfo) override;

private:
  vtkOMETIFFReader(const vtkOMETIFFReader&) = delete;
  void operator=(const vtkOMETIFFReader&) = delete;

  class vtkOMEInternals;
  vtkOMEInternals* OMEInternals;
};

VTK_ABI_NAMESPACE_END
#endif