VTK
vtkMergeFields.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMergeFields.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
47 #ifndef vtkMergeFields_h
48 #define vtkMergeFields_h
49 
50 #include "vtkFiltersCoreModule.h" // For export macro
51 #include "vtkDataSetAlgorithm.h"
52 
53 class vtkDataArray;
54 class vtkFieldData;
55 
57 {
58 public:
60  void PrintSelf(ostream& os, vtkIndent indent);
61 
63  static vtkMergeFields *New();
64 
67  void SetOutputField(const char* name, int fieldLoc);
68 
72  void SetOutputField(const char* name, const char* fieldLoc);
73 
75  void Merge(int component, const char* arrayName, int sourceComp);
76 
78 
80  vtkSetMacro(NumberOfComponents, int);
81  vtkGetMacro(NumberOfComponents, int);
83 
84 //BTX
86  {
87  DATA_OBJECT=0,
88  POINT_DATA=1,
89  CELL_DATA=2
90  };
91 //ETX
92 
93 //BTX
94  struct Component
95  {
96  int Index;
98  char* FieldName;
99  Component* Next; // linked list
100  void SetName(const char* name)
101  {
102  delete[] this->FieldName;
103  this->FieldName = 0;
104  if (name)
105  {
106  this->FieldName = new char[strlen(name)+1];
107  strcpy(this->FieldName, name);
108  }
109  }
110  Component() { FieldName = 0; }
111  ~Component() { delete[] FieldName; }
112  };
113 //ETX
114 
115 protected:
116 
117 //BTX
119  {
121  ATTRIBUTE
122  };
123 //ETX
124 
126  virtual ~vtkMergeFields();
127 
129 
130  char* FieldName;
134 
135  static char FieldLocationNames[3][12];
136 
137 
138  int MergeArray(vtkDataArray* in, vtkDataArray* out, int inComp, int outComp);
139 
140  // Components are stored as a linked list.
143 
144  // Methods to browse/modify the linked list.
146  { return op->Next; }
148  { return this->Head; }
152 
153  void PrintComponent(Component* op, ostream& os, vtkIndent indent);
154  void PrintAllComponents(ostream& os, vtkIndent indent);
155 private:
156  vtkMergeFields(const vtkMergeFields&); // Not implemented.
157  void operator=(const vtkMergeFields&); // Not implemented.
158 };
159 
160 #endif
161 
162 
vtkMergeFields::~vtkMergeFields
virtual ~vtkMergeFields()
vtkX3D::component
@ component
Definition: vtkX3D.h:175
vtkMergeFields::MergeArray
int MergeArray(vtkDataArray *in, vtkDataArray *out, int inComp, int outComp)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkMergeFields::Component::~Component
~Component()
Definition: vtkMergeFields.h:111
vtkMergeFields::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkMergeFields::FindComponent
Component * FindComponent(int index)
vtkMergeFields::FieldName
char * FieldName
Definition: vtkMergeFields.h:130
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkMergeFields::Component
Definition: vtkMergeFields.h:95
vtkMergeFields::SetOutputField
void SetOutputField(const char *name, const char *fieldLoc)
vtkMergeFields::Component::SetName
void SetName(const char *name)
Definition: vtkMergeFields.h:100
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkMergeFields::AddComponent
void AddComponent(Component *op)
vtkgl::in
GLuint in
Definition: vtkgl.h:16905
vtkMergeFields::Component::Index
int Index
Definition: vtkMergeFields.h:96
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:56
vtkFiltersCoreModule.h
vtkMergeFields::FieldType
FieldType
Definition: vtkMergeFields.h:119
vtkMergeFields::Merge
void Merge(int component, const char *arrayName, int sourceComp)
vtkMergeFields::DeleteAllComponents
void DeleteAllComponents()
vtkDataSetAlgorithm
Superclass for algorithms that produce output of the same type as input.
Definition: vtkDataSetAlgorithm.h:51
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkMergeFields::PrintComponent
void PrintComponent(Component *op, ostream &os, vtkIndent indent)
vtkMergeFields::Component::FieldName
char * FieldName
Definition: vtkMergeFields.h:98
vtkMergeFields::NumberOfComponents
int NumberOfComponents
Definition: vtkMergeFields.h:132
vtkMergeFields::FieldLocations
FieldLocations
Definition: vtkMergeFields.h:86
VTKFILTERSCORE_EXPORT
#define VTKFILTERSCORE_EXPORT
Definition: vtkFiltersCoreModule.h:15
vtkMergeFields::New
static vtkMergeFields * New()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkMergeFields::PrintAllComponents
void PrintAllComponents(ostream &os, vtkIndent indent)
vtkMergeFields::Tail
Component * Tail
Definition: vtkMergeFields.h:142
vtkMergeFields::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkMergeFields::GetFirst
Component * GetFirst()
Definition: vtkMergeFields.h:147
vtkMergeFields
Merge multiple fields into one.
Definition: vtkMergeFields.h:57
vtkMergeFields::Head
Component * Head
Definition: vtkMergeFields.h:141
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkMergeFields::NAME
@ NAME
Definition: vtkMergeFields.h:120
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkMergeFields::Component::SourceIndex
int SourceIndex
Definition: vtkMergeFields.h:97
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkDataSetAlgorithm.h
vtkMergeFields::Component::Component
Component()
Definition: vtkMergeFields.h:110
vtkMergeFields::FieldLocation
int FieldLocation
Definition: vtkMergeFields.h:131
vtkMergeFields::vtkMergeFields
vtkMergeFields()
vtkMergeFields::GetNextComponent
Component * GetNextComponent(Component *op)
Definition: vtkMergeFields.h:145
vtkMergeFields::Component::Next
Component * Next
Definition: vtkMergeFields.h:99
vtkMergeFields::SetOutputField
void SetOutputField(const char *name, int fieldLoc)
vtkMergeFields::OutputDataType
int OutputDataType
Definition: vtkMergeFields.h:133