00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00079
#ifndef __vtkGlyph3D_h
00080
#define __vtkGlyph3D_h
00081
00082
#include "vtkDataSetToPolyDataFilter.h"
00083
00084 #define VTK_SCALE_BY_SCALAR 0
00085 #define VTK_SCALE_BY_VECTOR 1
00086 #define VTK_SCALE_BY_VECTORCOMPONENTS 2
00087 #define VTK_DATA_SCALING_OFF 3
00088
00089 #define VTK_COLOR_BY_SCALE 0
00090 #define VTK_COLOR_BY_SCALAR 1
00091 #define VTK_COLOR_BY_VECTOR 2
00092
00093 #define VTK_USE_VECTOR 0
00094 #define VTK_USE_NORMAL 1
00095 #define VTK_VECTOR_ROTATION_OFF 2
00096
00097 #define VTK_INDEXING_OFF 0
00098 #define VTK_INDEXING_BY_SCALAR 1
00099 #define VTK_INDEXING_BY_VECTOR 2
00100
00101 class VTK_GRAPHICS_EXPORT vtkGlyph3D :
public vtkDataSetToPolyDataFilter
00102 {
00103
public:
00104 vtkTypeRevisionMacro(vtkGlyph3D,
vtkDataSetToPolyDataFilter);
00105
void PrintSelf(ostream& os,
vtkIndent indent);
00106
00111
static vtkGlyph3D *
New();
00112
00114
00116
void SetNumberOfSources(
int num);
00117
int GetNumberOfSources();
00119
00121 void SetSource(
vtkPolyData *pd) {this->SetSource(0,pd);};
00122
00124
void SetSource(
int id,
vtkPolyData *pd);
00125
00127
vtkPolyData *GetSource(
int id=0);
00128
00130
00131 vtkSetMacro(Scaling,
int);
00132 vtkBooleanMacro(Scaling,
int);
00133 vtkGetMacro(Scaling,
int);
00135
00137
00138 vtkSetMacro(ScaleMode,
int);
00139 vtkGetMacro(ScaleMode,
int);
00140 void SetScaleModeToScaleByScalar()
00141 {this->SetScaleMode(
VTK_SCALE_BY_SCALAR);};
00142 void SetScaleModeToScaleByVector()
00143 {this->SetScaleMode(
VTK_SCALE_BY_VECTOR);};
00144 void SetScaleModeToScaleByVectorComponents()
00145 {this->SetScaleMode(
VTK_SCALE_BY_VECTORCOMPONENTS);};
00146 void SetScaleModeToDataScalingOff()
00147 {this->SetScaleMode(
VTK_DATA_SCALING_OFF);};
00148
const char *GetScaleModeAsString();
00150
00152
00153 vtkSetMacro(ColorMode,
int);
00154 vtkGetMacro(ColorMode,
int);
00155 void SetColorModeToColorByScale()
00156 {this->SetColorMode(
VTK_COLOR_BY_SCALE);};
00157 void SetColorModeToColorByScalar()
00158 {this->SetColorMode(
VTK_COLOR_BY_SCALAR);};
00159 void SetColorModeToColorByVector()
00160 {this->SetColorMode(
VTK_COLOR_BY_VECTOR);};
00161
const char *GetColorModeAsString();
00163
00165
00166 vtkSetMacro(ScaleFactor,
double);
00167 vtkGetMacro(ScaleFactor,
double);
00169
00171
00172 vtkSetVector2Macro(Range,
double);
00173 vtkGetVectorMacro(Range,
double,2);
00175
00177
00178 vtkSetMacro(Orient,
int);
00179 vtkBooleanMacro(Orient,
int);
00180 vtkGetMacro(Orient,
int);
00182
00184
00186 vtkSetMacro(Clamping,
int);
00187 vtkBooleanMacro(Clamping,
int);
00188 vtkGetMacro(Clamping,
int);
00190
00192
00193 vtkSetMacro(VectorMode,
int);
00194 vtkGetMacro(VectorMode,
int);
00195 void SetVectorModeToUseVector() {this->SetVectorMode(
VTK_USE_VECTOR);};
00196 void SetVectorModeToUseNormal() {this->SetVectorMode(
VTK_USE_NORMAL);};
00197 void SetVectorModeToVectorRotationOff()
00198 {this->SetVectorMode(
VTK_VECTOR_ROTATION_OFF);};
00199
const char *GetVectorModeAsString();
00201
00203
00206 vtkSetMacro(IndexMode,
int);
00207 vtkGetMacro(IndexMode,
int);
00208 void SetIndexModeToScalar() {this->SetIndexMode(
VTK_INDEXING_BY_SCALAR);};
00209 void SetIndexModeToVector() {this->SetIndexMode(
VTK_INDEXING_BY_VECTOR);};
00210 void SetIndexModeToOff() {this->SetIndexMode(
VTK_INDEXING_OFF);};
00211
const char *GetIndexModeAsString();
00213
00215
00219 vtkSetMacro(GeneratePointIds,
int);
00220 vtkGetMacro(GeneratePointIds,
int);
00221 vtkBooleanMacro(GeneratePointIds,
int);
00223
00225
00228 vtkSetStringMacro(PointIdsName);
00229 vtkGetStringMacro(PointIdsName);
00231
00233
00236 vtkGetStringMacro(InputScalarsSelection);
00237 void SelectInputScalars(
const char *fieldName)
00238 {this->SetInputScalarsSelection(fieldName);}
00240
00242
00245 vtkGetStringMacro(InputVectorsSelection);
00246 void SelectInputVectors(
const char *fieldName)
00247 {this->SetInputVectorsSelection(fieldName);}
00249
00251
00254 vtkGetStringMacro(InputNormalsSelection);
00255 void SelectInputNormals(
const char *fieldName)
00256 {this->SetInputNormalsSelection(fieldName);}
00258
00259
protected:
00260 vtkGlyph3D();
00261 ~vtkGlyph3D();
00262
00263
void Execute();
00264
void ExecuteInformation();
00265
void ComputeInputUpdateExtents(
vtkDataObject *output);
00266
00267 int NumberOfSources;
00268 vtkPolyData **Source;
00269 int Scaling;
00270 int ScaleMode;
00271 int ColorMode;
00272 double ScaleFactor;
00273 double Range[2];
00274 int Orient;
00275 int VectorMode;
00276 int Clamping;
00277 int IndexMode;
00278 int GeneratePointIds;
00279 char *PointIdsName;
00280
00281 char *InputScalarsSelection;
00282 char *InputVectorsSelection;
00283 char *InputNormalsSelection;
00284 vtkSetStringMacro(InputScalarsSelection);
00285 vtkSetStringMacro(InputVectorsSelection);
00286 vtkSetStringMacro(InputNormalsSelection);
00287
00288
private:
00289 vtkGlyph3D(
const vtkGlyph3D&);
00290
void operator=(
const vtkGlyph3D&);
00291 };
00292
00294 inline const char *
vtkGlyph3D::GetScaleModeAsString(
void)
00295 {
00296
if ( this->
ScaleMode ==
VTK_SCALE_BY_SCALAR )
00297 {
00298
return "ScaleByScalar";
00299 }
00300
else if ( this->
ScaleMode ==
VTK_SCALE_BY_VECTOR )
00301 {
00302
return "ScaleByVector";
00303 }
00304
else
00305 {
00306
return "DataScalingOff";
00307 }
00308 }
00309
00311 inline const char *
vtkGlyph3D::GetColorModeAsString(
void)
00312 {
00313
if ( this->
ColorMode ==
VTK_COLOR_BY_SCALAR )
00314 {
00315
return "ColorByScalar";
00316 }
00317
else if ( this->
ColorMode ==
VTK_COLOR_BY_VECTOR )
00318 {
00319
return "ColorByVector";
00320 }
00321
else
00322 {
00323
return "ColorByScale";
00324 }
00325 }
00326
00328 inline const char *
vtkGlyph3D::GetVectorModeAsString(
void)
00329 {
00330
if ( this->
VectorMode ==
VTK_USE_VECTOR)
00331 {
00332
return "UseVector";
00333 }
00334
else if ( this->
VectorMode ==
VTK_USE_NORMAL)
00335 {
00336
return "UseNormal";
00337 }
00338
else
00339 {
00340
return "VectorRotationOff";
00341 }
00342 }
00343
00345 inline const char *
vtkGlyph3D::GetIndexModeAsString(
void)
00346 {
00347
if ( this->
IndexMode ==
VTK_INDEXING_OFF)
00348 {
00349
return "IndexingOff";
00350 }
00351
else if ( this->
IndexMode ==
VTK_INDEXING_BY_SCALAR)
00352 {
00353
return "IndexingByScalar";
00354 }
00355
else
00356 {
00357
return "IndexingByVector";
00358 }
00359 }
00360
00361
#endif