/usr/include/paraview/vtkCPExodusIIElementBlock.h is in paraview-dev 5.0.1+dfsg1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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  | /*=========================================================================
  Program:   Visualization Toolkit
  Module:    vtkCPExodusIIElementBlock.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.
=========================================================================*/
// .NAME vtkCPExodusIIElementBlock - Uses an Exodus II element block as a
//  vtkMappedUnstructuredGrid's implementation.
//
// .SECTION Description
// This class allows raw data arrays returned by the Exodus II library to be
// used directly in VTK without repacking the data into the vtkUnstructuredGrid
// memory layout. Use the vtkCPExodusIIInSituReader to read an Exodus II file's
// data into this structure.
#ifndef vtkCPExodusIIElementBlock_h
#define vtkCPExodusIIElementBlock_h
#include "vtkObject.h"
#include "vtkIOExodusModule.h" // For export macro
#include "vtkMappedUnstructuredGrid.h" // For mapped unstructured grid wrapper
#include <string> // For std::string
class vtkGenericCell;
class VTKIOEXODUS_EXPORT vtkCPExodusIIElementBlockImpl : public vtkObject
{
public:
  static vtkCPExodusIIElementBlockImpl *New();
  virtual void PrintSelf(ostream &os, vtkIndent indent);
  vtkTypeMacro(vtkCPExodusIIElementBlockImpl, vtkObject)
  // Description:
  // Set the Exodus element block data. 'elements' is the array returned from
  // ex_get_elem_conn. 'type', 'numElements', and 'nodesPerElement' are obtained
  // from ex_get_elem_block. Returns true or false depending on whether or not
  // the element type can be translated into a VTK cell type. This object takes
  // ownership of the elements array unless this function returns false.
  bool SetExodusConnectivityArray(int *elements, const std::string &type,
                                  int numElements, int nodesPerElement);
  // API for vtkMappedUnstructuredGrid's implementation.
  vtkIdType GetNumberOfCells();
  int GetCellType(vtkIdType cellId);
  void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds);
  void GetPointCells(vtkIdType ptId, vtkIdList *cellIds);
  int GetMaxCellSize();
  void GetIdsOfCellsOfType(int type, vtkIdTypeArray *array);
  int IsHomogeneous();
  // This container is read only -- these methods do nothing but print a
  // warning.
  void Allocate(vtkIdType numCells, int extSize = 1000);
  vtkIdType InsertNextCell(int type, vtkIdList *ptIds);
  vtkIdType InsertNextCell(int type, vtkIdType npts, vtkIdType *ptIds);
  vtkIdType InsertNextCell(int type, vtkIdType npts, vtkIdType *ptIds,
                           vtkIdType nfaces, vtkIdType *faces);
  void ReplaceCell(vtkIdType cellId, int npts, vtkIdType *pts);
protected:
  vtkCPExodusIIElementBlockImpl();
  ~vtkCPExodusIIElementBlockImpl();
private:
  vtkCPExodusIIElementBlockImpl(const vtkCPExodusIIElementBlockImpl &); // Not implemented.
  void operator=(const vtkCPExodusIIElementBlockImpl &);   // Not implemented.
  // Convert between Exodus node ids and VTK point ids.
  static vtkIdType NodeToPoint(const int &id)
  {
    return static_cast<vtkIdType>(id - 1);
  }
  static int PointToNode(const vtkIdType &id)
  {
    return static_cast<int>(id + 1);
  }
  // Convenience methods to get pointers into the element array.
  int* GetElementStart(vtkIdType cellId) const
  {
    return this->Elements + (cellId * this->CellSize);
  }
  int* GetElementEnd(vtkIdType cellId) const
  {
    return this->Elements + (cellId * this->CellSize) + this->CellSize;
  }
  int* GetStart() const { return this->Elements; }
  int* GetEnd() const
  {
    return this->Elements + (this->NumberOfCells * this->CellSize);
  }
  int *Elements;
  int CellType;
  int CellSize;
  vtkIdType NumberOfCells;
};
vtkMakeExportedMappedUnstructuredGrid(vtkCPExodusIIElementBlock,
                                      vtkCPExodusIIElementBlockImpl,
                                      VTKIOEXODUS_EXPORT)
#endif //vtkCPExodusIIElementBlock_h
 |