forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathvtkSLACParticleReader.h
88 lines (69 loc) · 3.16 KB
/
vtkSLACParticleReader.h
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
// -*- c++ -*-
/*=========================================================================
Program: Visualization Toolkit
Module: vtkSLACParticleReader.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2008 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
// .NAME vtkSLACParticleReader
//
// .SECTION Description
//
// A reader for a data format used by Omega3p, Tau3p, and several other tools
// used at the Standford Linear Accelerator Center (SLAC). The underlying
// format uses netCDF to store arrays, but also imposes some conventions
// to store a list of particles in 3D space.
//
// This reader supports pieces, but in actuality only loads anything in
// piece 0. All other pieces are empty.
//
#ifndef __vtkSLACParticleReader_h
#define __vtkSLACParticleReader_h
#include "vtkPolyDataAlgorithm.h"
class vtkDataArraySelection;
class vtkIdTypeArray;
class vtkInformationIntegerKey;
class vtkInformationObjectBaseKey;
class VTK_IO_EXPORT vtkSLACParticleReader : public vtkPolyDataAlgorithm
{
public:
vtkTypeMacro(vtkSLACParticleReader, vtkPolyDataAlgorithm);
static vtkSLACParticleReader *New();
virtual void PrintSelf(ostream &os, vtkIndent indent);
vtkGetStringMacro(FileName);
vtkSetStringMacro(FileName);
// Description:
// Returns true if the given file can be read by this reader.
static int CanReadFile(const char *filename);
protected:
vtkSLACParticleReader();
~vtkSLACParticleReader();
char *FileName;
virtual int RequestInformation(vtkInformation *request,
vtkInformationVector **inputVector,
vtkInformationVector *outputVector);
virtual int RequestData(vtkInformation *request,
vtkInformationVector **inputVector,
vtkInformationVector *outputVector);
// Description:
// Convenience function that checks the dimensions of a 2D netCDF array that
// is supposed to be a set of tuples. It makes sure that the number of
// dimensions is expected and that the number of components in each tuple
// agree with what is expected. It then returns the number of tuples. An
// error is emitted and 0 is returned if the checks fail.
virtual vtkIdType GetNumTuplesInVariable(int ncFD, int varId,
int expectedNumComponents);
private:
vtkSLACParticleReader(const vtkSLACParticleReader &); // Not implemented
void operator=(const vtkSLACParticleReader &); // Not implemented
};
#endif //__vtkSLACParticleReader_h