00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00083
#ifndef __vtkGlyph3D_h
00084
#define __vtkGlyph3D_h
00085
00086
#include "vtkDataSetToPolyDataFilter.h"
00087
00088 #define VTK_SCALE_BY_SCALAR 0
00089 #define VTK_SCALE_BY_VECTOR 1
00090 #define VTK_SCALE_BY_VECTORCOMPONENTS 2
00091 #define VTK_DATA_SCALING_OFF 3
00092
00093 #define VTK_COLOR_BY_SCALE 0
00094 #define VTK_COLOR_BY_SCALAR 1
00095 #define VTK_COLOR_BY_VECTOR 2
00096
00097 #define VTK_USE_VECTOR 0
00098 #define VTK_USE_NORMAL 1
00099 #define VTK_VECTOR_ROTATION_OFF 2
00100
00101 #define VTK_INDEXING_OFF 0
00102 #define VTK_INDEXING_BY_SCALAR 1
00103 #define VTK_INDEXING_BY_VECTOR 2
00104
00105 class VTK_GRAPHICS_EXPORT vtkGlyph3D :
public vtkDataSetToPolyDataFilter
00106 {
00107
public:
00108 vtkTypeRevisionMacro(vtkGlyph3D,
vtkDataSetToPolyDataFilter);
00109
void PrintSelf(ostream& os,
vtkIndent indent);
00110
00115
static vtkGlyph3D *
New();
00116
00118
00120
void SetNumberOfSources(
int num);
00121
int GetNumberOfSources();
00123
00125 void SetSource(
vtkPolyData *pd) {this->SetSource(0,pd);};
00126
00128
void SetSource(
int id,
vtkPolyData *pd);
00129
00131
vtkPolyData *GetSource(
int id=0);
00132
00134
00135 vtkSetMacro(Scaling,
int);
00136 vtkBooleanMacro(Scaling,
int);
00137 vtkGetMacro(Scaling,
int);
00139
00141
00142 vtkSetMacro(ScaleMode,
int);
00143 vtkGetMacro(ScaleMode,
int);
00144 void SetScaleModeToScaleByScalar()
00145 {this->SetScaleMode(
VTK_SCALE_BY_SCALAR);};
00146 void SetScaleModeToScaleByVector()
00147 {this->SetScaleMode(
VTK_SCALE_BY_VECTOR);};
00148 void SetScaleModeToScaleByVectorComponents()
00149 {this->SetScaleMode(
VTK_SCALE_BY_VECTORCOMPONENTS);};
00150 void SetScaleModeToDataScalingOff()
00151 {this->SetScaleMode(
VTK_DATA_SCALING_OFF);};
00152
const char *GetScaleModeAsString();
00154
00156
00157 vtkSetMacro(ColorMode,
int);
00158 vtkGetMacro(ColorMode,
int);
00159 void SetColorModeToColorByScale()
00160 {this->SetColorMode(
VTK_COLOR_BY_SCALE);};
00161 void SetColorModeToColorByScalar()
00162 {this->SetColorMode(
VTK_COLOR_BY_SCALAR);};
00163 void SetColorModeToColorByVector()
00164 {this->SetColorMode(
VTK_COLOR_BY_VECTOR);};
00165
const char *GetColorModeAsString();
00167
00169
00170 vtkSetMacro(ScaleFactor,
float);
00171 vtkGetMacro(ScaleFactor,
float);
00173
00175
00176 vtkSetVector2Macro(Range,
float);
00177 vtkGetVectorMacro(Range,
float,2);
00179
00181
00182 vtkSetMacro(Orient,
int);
00183 vtkBooleanMacro(Orient,
int);
00184 vtkGetMacro(Orient,
int);
00186
00188
00190 vtkSetMacro(Clamping,
int);
00191 vtkBooleanMacro(Clamping,
int);
00192 vtkGetMacro(Clamping,
int);
00194
00196
00197 vtkSetMacro(VectorMode,
int);
00198 vtkGetMacro(VectorMode,
int);
00199 void SetVectorModeToUseVector() {this->SetVectorMode(
VTK_USE_VECTOR);};
00200 void SetVectorModeToUseNormal() {this->SetVectorMode(
VTK_USE_NORMAL);};
00201 void SetVectorModeToVectorRotationOff()
00202 {this->SetVectorMode(
VTK_VECTOR_ROTATION_OFF);};
00203
const char *GetVectorModeAsString();
00205
00207
00210 vtkSetMacro(IndexMode,
int);
00211 vtkGetMacro(IndexMode,
int);
00212 void SetIndexModeToScalar() {this->SetIndexMode(
VTK_INDEXING_BY_SCALAR);};
00213 void SetIndexModeToVector() {this->SetIndexMode(
VTK_INDEXING_BY_VECTOR);};
00214 void SetIndexModeToOff() {this->SetIndexMode(
VTK_INDEXING_OFF);};
00215
const char *GetIndexModeAsString();
00217
00219
00223 vtkSetMacro(GeneratePointIds,
int);
00224 vtkGetMacro(GeneratePointIds,
int);
00225 vtkBooleanMacro(GeneratePointIds,
int);
00227
00229
00232 vtkSetStringMacro(PointIdsName);
00233 vtkGetStringMacro(PointIdsName);
00235
00236
protected:
00237 vtkGlyph3D();
00238 ~vtkGlyph3D();
00239
00240
void Execute();
00241
void ExecuteInformation();
00242
void ComputeInputUpdateExtents(
vtkDataObject *output);
00243
00244 int NumberOfSources;
00245 vtkPolyData **Source;
00246 int Scaling;
00247 int ScaleMode;
00248 int ColorMode;
00249 float ScaleFactor;
00250 float Range[2];
00251 int Orient;
00252 int VectorMode;
00253 int Clamping;
00254 int IndexMode;
00255 int GeneratePointIds;
00256 char *PointIdsName;
00257
00258 char *InputScalarsSelection;
00259 char *InputVectorsSelection;
00260 char *InputNormalsSelection;
00261 vtkSetStringMacro(InputScalarsSelection);
00262 vtkSetStringMacro(InputVectorsSelection);
00263 vtkSetStringMacro(InputNormalsSelection);
00264
00265
private:
00266 vtkGlyph3D(
const vtkGlyph3D&);
00267
void operator=(
const vtkGlyph3D&);
00268 };
00269
00271 inline const char *
vtkGlyph3D::GetScaleModeAsString(
void)
00272 {
00273
if ( this->
ScaleMode ==
VTK_SCALE_BY_SCALAR )
00274 {
00275
return "ScaleByScalar";
00276 }
00277
else if ( this->
ScaleMode ==
VTK_SCALE_BY_VECTOR )
00278 {
00279
return "ScaleByVector";
00280 }
00281
else
00282 {
00283
return "DataScalingOff";
00284 }
00285 }
00286
00288 inline const char *
vtkGlyph3D::GetColorModeAsString(
void)
00289 {
00290
if ( this->
ColorMode ==
VTK_COLOR_BY_SCALAR )
00291 {
00292
return "ColorByScalar";
00293 }
00294
else if ( this->
ColorMode ==
VTK_COLOR_BY_VECTOR )
00295 {
00296
return "ColorByVector";
00297 }
00298
else
00299 {
00300
return "ColorByScale";
00301 }
00302 }
00303
00305 inline const char *
vtkGlyph3D::GetVectorModeAsString(
void)
00306 {
00307
if ( this->
VectorMode ==
VTK_USE_VECTOR)
00308 {
00309
return "UseVector";
00310 }
00311
else if ( this->
VectorMode ==
VTK_USE_NORMAL)
00312 {
00313
return "UseNormal";
00314 }
00315
else
00316 {
00317
return "VectorRotationOff";
00318 }
00319 }
00320
00322 inline const char *
vtkGlyph3D::GetIndexModeAsString(
void)
00323 {
00324
if ( this->
IndexMode ==
VTK_INDEXING_OFF)
00325 {
00326
return "IndexingOff";
00327 }
00328
else if ( this->
IndexMode ==
VTK_INDEXING_BY_SCALAR)
00329 {
00330
return "IndexingByScalar";
00331 }
00332
else
00333 {
00334
return "IndexingByVector";
00335 }
00336 }
00337
00338
#endif