Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkHyperStreamline Class Reference

generate hyperstreamline in arbitrary dataset. More...

#include <vtkHyperStreamline.h>

Inheritance diagram for vtkHyperStreamline:

Inheritance graph
[legend]
Collaboration diagram for vtkHyperStreamline:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void SetStartLocation (int cellId, int subId, float pcoords[3])
void SetStartLocation (int cellId, int subId, float r, float s, float t)
int GetStartLocation (int &subId, float pcoords[3])
void SetStartPosition (float x[3])
void SetStartPosition (float x, float y, float z)
float * GetStartPosition ()
virtual void SetMaximumPropagationDistance (float)
virtual float GetMaximumPropagationDistance ()
void IntegrateMajorEigenvector ()
void IntegrateMediumEigenvector ()
void IntegrateMinorEigenvector ()
virtual void SetIntegrationStepLength (float)
virtual float GetIntegrationStepLength ()
virtual void SetStepLength (float)
virtual float GetStepLength ()
virtual void SetIntegrationDirection (int)
virtual int GetIntegrationDirection ()
void SetIntegrationDirectionToForward ()
void SetIntegrationDirectionToBackward ()
void SetIntegrationDirectionToIntegrateBothDirections ()
virtual void SetTerminalEigenvalue (float)
virtual float GetTerminalEigenvalue ()
virtual void SetNumberOfSides (int)
virtual int GetNumberOfSides ()
virtual void SetRadius (float)
virtual float GetRadius ()
virtual void SetLogScaling (int)
virtual int GetLogScaling ()
virtual void LogScalingOn ()
virtual void LogScalingOff ()

Static Public Methods

int IsTypeOf (const char *type)
vtkHyperStreamline * SafeDownCast (vtkObject *o)
vtkHyperStreamline * New ()

Protected Methods

 vtkHyperStreamline ()
 ~vtkHyperStreamline ()
 vtkHyperStreamline (const vtkHyperStreamline &)
void operator= (const vtkHyperStreamline &)
void Execute ()
void BuildTube ()

Protected Attributes

int StartFrom
int StartCell
int StartSubId
float StartPCoords [3]
float StartPosition [3]
vtkHyperArray * Streamers
int NumberOfStreamers
float MaximumPropagationDistance
int IntegrationDirection
float IntegrationStepLength
float StepLength
float TerminalEigenvalue
int NumberOfSides
float Radius
int LogScaling
int IntegrationEigenvector

Detailed Description

generate hyperstreamline in arbitrary dataset.

Date:
2000/12/10 20:08:39
Revision:
1.35

vtkHyperStreamline is a filter that integrates through a tensor field to generate a hyperstreamline. The integration is along the maximum eigenvector and the cross section of the hyperstreamline is defined by the two other eigenvectors. Thus the shape of the hyperstreamline is "tube-like", with the cross section being elliptical. Hyperstreamlines are used to visualize tensor fields.

The starting point of a hyperstreamline can be defined in one of two ways. First, you may specify an initial position. This is a x-y-z global coordinate. The second option is to specify a starting location. This is cellId, subId, and cell parametric coordinates.

The integration of the hyperstreamline occurs through the major eigenvector field. IntegrationStepLength controls the step length within each cell (i.e., this is the fraction of the cell length). The length of the hyperstreamline is controlled by MaximumPropagationDistance. This parameter is the length of the hyperstreamline in units of distance. The tube itself is composed of many small sub-tubes - NumberOfSides controls the number of sides in the tube, and StepLength controls the length of the sub-tubes.

Because hyperstreamlines are often created near regions of singularities, it is possible to control the scaling of the tube cross section by using a logarithmic scale. Use LogScalingOn to turn this capability on. The Radius value controls the initial radius of the tube.

See also:
vtkTensorGlyph vtkStreamer
Examples:
vtkHyperStreamline (examples)

Definition at line 88 of file vtkHyperStreamline.h.


Constructor & Destructor Documentation

vtkHyperStreamline::vtkHyperStreamline   [protected]
 

vtkHyperStreamline::~vtkHyperStreamline   [protected]
 

vtkHyperStreamline::vtkHyperStreamline const vtkHyperStreamline &    [inline, protected]
 

Definition at line 196 of file vtkHyperStreamline.h.


Member Function Documentation

virtual const char* vtkHyperStreamline::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSetToPolyDataFilter.

int vtkHyperStreamline::IsTypeOf const char *    type [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSetToPolyDataFilter.

virtual int vtkHyperStreamline::IsA const char *    type [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSetToPolyDataFilter.

vtkHyperStreamline* vtkHyperStreamline::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSetToPolyDataFilter.

void vtkHyperStreamline::PrintSelf ostream &    os,
vtkIndent    indent
[virtual]
 

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkSource.

vtkHyperStreamline* vtkHyperStreamline::New   [static]
 

Construct object with initial starting position (0,0,0); integration step length 0.2; step length 0.01; forward integration; terminal eigenvalue 0.0; number of sides 6; radius 0.5; and logarithmic scaling off.

Reimplemented from vtkPolyDataSource.

void vtkHyperStreamline::SetStartLocation int    cellId,
int    subId,
float    pcoords[3]
 

Specify the start of the hyperstreamline in the cell coordinate system. That is, cellId and subId (if composite cell), and parametric coordinates.

void vtkHyperStreamline::SetStartLocation int    cellId,
int    subId,
float    r,
float    s,
float    t
 

Specify the start of the hyperstreamline in the cell coordinate system. That is, cellId and subId (if composite cell), and parametric coordinates.

int vtkHyperStreamline::GetStartLocation int &    subId,
float    pcoords[3]
 

Get the starting location of the hyperstreamline in the cell coordinate system. Returns the cell that the starting point is in.

void vtkHyperStreamline::SetStartPosition float    x[3]
 

Specify the start of the hyperstreamline in the global coordinate system. Starting from position implies that a search must be performed to find initial cell to start integration from.

void vtkHyperStreamline::SetStartPosition float    x,
float    y,
float    z
 

Specify the start of the hyperstreamline in the global coordinate system. Starting from position implies that a search must be performed to find initial cell to start integration from.

float* vtkHyperStreamline::GetStartPosition  
 

Get the start position of the hyperstreamline in global x-y-z coordinates.

virtual void vtkHyperStreamline::SetMaximumPropagationDistance float    [virtual]
 

Set / get the maximum length of the hyperstreamline expressed as absolute distance (i.e., arc length) value.

virtual float vtkHyperStreamline::GetMaximumPropagationDistance   [virtual]
 

void vtkHyperStreamline::IntegrateMajorEigenvector  
 

Use the major eigenvector field as the vector field through which to integrate. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to positive infinity.

void vtkHyperStreamline::IntegrateMediumEigenvector  
 

Use the major eigenvector field as the vector field through which to integrate. The major eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues.

void vtkHyperStreamline::IntegrateMinorEigenvector  
 

Use the major eigenvector field as the vector field through which to integrate. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity.

virtual void vtkHyperStreamline::SetIntegrationStepLength float    [virtual]
 

Set / get a nominal integration step size (expressed as a fraction of the size of each cell).

virtual float vtkHyperStreamline::GetIntegrationStepLength   [virtual]
 

virtual void vtkHyperStreamline::SetStepLength float    [virtual]
 

Set / get the length of a tube segment composing the hyperstreamline. The length is specified as a fraction of the diagonal length of the input bounding box.

virtual float vtkHyperStreamline::GetStepLength   [virtual]
 

virtual void vtkHyperStreamline::SetIntegrationDirection int    [virtual]
 

Specify the direction in which to integrate the hyperstreamline.

virtual int vtkHyperStreamline::GetIntegrationDirection   [virtual]
 

void vtkHyperStreamline::SetIntegrationDirectionToForward   [inline]
 

Definition at line 163 of file vtkHyperStreamline.h.

void vtkHyperStreamline::SetIntegrationDirectionToBackward   [inline]
 

Definition at line 165 of file vtkHyperStreamline.h.

void vtkHyperStreamline::SetIntegrationDirectionToIntegrateBothDirections   [inline]
 

Definition at line 167 of file vtkHyperStreamline.h.

virtual void vtkHyperStreamline::SetTerminalEigenvalue float    [virtual]
 

Set/get terminal eigenvalue. If major eigenvalue falls below this value, hyperstreamline terminates propagation.

virtual float vtkHyperStreamline::GetTerminalEigenvalue   [virtual]
 

virtual void vtkHyperStreamline::SetNumberOfSides int    [virtual]
 

Set / get the number of sides for the hyperstreamlines. At a minimum, number of sides is 3.

virtual int vtkHyperStreamline::GetNumberOfSides   [virtual]
 

virtual void vtkHyperStreamline::SetRadius float    [virtual]
 

Set / get the initial tube radius. This is the maximum "elliptical" radius at the beginning of the tube. Radius varies based on ratio of eigenvalues. Note that tube section is actually elliptical and may become a point or line in cross section in some cases.

virtual float vtkHyperStreamline::GetRadius   [virtual]
 

virtual void vtkHyperStreamline::SetLogScaling int    [virtual]
 

Turn on/off logarithmic scaling. If scaling is on, the log base 10 of the computed eigenvalues are used to scale the cross section radii.

virtual int vtkHyperStreamline::GetLogScaling   [virtual]
 

virtual void vtkHyperStreamline::LogScalingOn   [virtual]
 

virtual void vtkHyperStreamline::LogScalingOff   [virtual]
 

void vtkHyperStreamline::operator= const vtkHyperStreamline &    [inline, protected]
 

Definition at line 197 of file vtkHyperStreamline.h.

void vtkHyperStreamline::Execute   [protected, virtual]
 

Reimplemented from vtkSource.

void vtkHyperStreamline::BuildTube   [protected]
 


Member Data Documentation

int vtkHyperStreamline::StartFrom [protected]
 

Definition at line 204 of file vtkHyperStreamline.h.

int vtkHyperStreamline::StartCell [protected]
 

Definition at line 207 of file vtkHyperStreamline.h.

int vtkHyperStreamline::StartSubId [protected]
 

Definition at line 208 of file vtkHyperStreamline.h.

float vtkHyperStreamline::StartPCoords[3] [protected]
 

Definition at line 209 of file vtkHyperStreamline.h.

float vtkHyperStreamline::StartPosition[3] [protected]
 

Definition at line 212 of file vtkHyperStreamline.h.

vtkHyperArray* vtkHyperStreamline::Streamers [protected]
 

Definition at line 215 of file vtkHyperStreamline.h.

int vtkHyperStreamline::NumberOfStreamers [protected]
 

Definition at line 216 of file vtkHyperStreamline.h.

float vtkHyperStreamline::MaximumPropagationDistance [protected]
 

Definition at line 219 of file vtkHyperStreamline.h.

int vtkHyperStreamline::IntegrationDirection [protected]
 

Definition at line 222 of file vtkHyperStreamline.h.

float vtkHyperStreamline::IntegrationStepLength [protected]
 

Definition at line 225 of file vtkHyperStreamline.h.

float vtkHyperStreamline::StepLength [protected]
 

Definition at line 228 of file vtkHyperStreamline.h.

float vtkHyperStreamline::TerminalEigenvalue [protected]
 

Definition at line 231 of file vtkHyperStreamline.h.

int vtkHyperStreamline::NumberOfSides [protected]
 

Definition at line 234 of file vtkHyperStreamline.h.

float vtkHyperStreamline::Radius [protected]
 

Definition at line 237 of file vtkHyperStreamline.h.

int vtkHyperStreamline::LogScaling [protected]
 

Definition at line 240 of file vtkHyperStreamline.h.

int vtkHyperStreamline::IntegrationEigenvector [protected]
 

Definition at line 243 of file vtkHyperStreamline.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:48:13 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001