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

# vtkHyperStreamline Class Reference

`#include <vtkHyperStreamline.h>`

Inheritance diagram for vtkHyperStreamline:

[legend]
Collaboration diagram for vtkHyperStreamline:

[legend]
List of all members.

## Detailed Description

generate hyperstreamline in arbitrary dataset

Date:
  2002/06/13 09:53:14

Revision:
  1.42

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

Created by:
  - Schroeder, Will

CVS contributions (if > 5%):
  - Schroeder, Will (63%)
  - Lorensen, Bill (13%)
  - Martin, Ken (5%)

CVS logs (CVSweb):
  - .`cxx` (`/Graphics/vtkHyperStreamline.cxx)`
  - .`h` (`/Graphics/vtkHyperStreamline.h)`

Tests:
  vtkHyperStreamline (Tests)

Definition at line 82 of file vtkHyperStreamline.h.

## Public Types

typedef vtkDataSetToPolyDataFilter | Superclass

## Public Methods

virtual const char * | GetClassName ()
virtual int | IsA (const char *type)
void | PrintSelf (ostream &os, vtkIndent indent)
void | SetStartLocation (vtkIdType cellId, int subId, float pcoords[3])
vtkIdType | GetStartLocation (int &subId, float pcoords[3])
void | SetStartPosition (float x[3])
void | SetStartPosition (float x, float y, float z)
float * | GetStartPosition ()
void | SetStartLocation (vtkIdType cellId, int subId, float r, float s, float t)
virtual void | SetMaximumPropagationDistance (float)
virtual float | GetMaximumPropagationDistance ()
virtual void | SetIntegrationEigenvector (int)
virtual int | GetIntegrationEigenvector ()
void | SetIntegrationEigenvectorToMajor ()
void | SetIntegrationEigenvectorToMedium ()
void | SetIntegrationEigenvectorToMinor ()
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 ()
void | Execute ()
void | BuildTube ()

## Protected Attributes

int | StartFrom
vtkIdType | 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

## Member Typedef Documentation

typedef vtkDataSetToPolyDataFilter vtkHyperStreamline::Superclass

| Reimplemented from vtkDataSetToPolyDataFilter. Definition at line 85 of file vtkHyperStreamline.h.

## Constructor & Destructor Documentation

vtkHyperStreamline::vtkHyperStreamline | ( |  | ) | `[protected]`

vtkHyperStreamline::~vtkHyperStreamline | ( |  | ) | `[protected]`

## Member Function Documentation

virtual const char* vtkHyperStreamline::GetClassName | ( |  | ) | `[virtual]`

| 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 vtkTypeRevisionMacro 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 vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkDataSetToPolyDataFilter.

vtkHyperStreamline* vtkHyperStreamline::SafeDownCast | ( | vtkObject * | o | ) | `[static]`

| 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 vtkDataSetToPolyDataFilter.

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 vtkObject.

void vtkHyperStreamline::SetStartLocation | ( | vtkIdType | 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 | ( | vtkIdType | 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.

vtkIdType 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]`

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

virtual void vtkHyperStreamline::SetIntegrationEigenvector | ( | int |  | ) | `[virtual]`

Set / get the eigenvector field through which to ingrate. It is possible to integrate using the major, medium or minor eigenvector field. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to positive infinity. The minor eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity. The medium eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues.

virtual int vtkHyperStreamline::GetIntegrationEigenvector | ( |  | ) | `[virtual]`

Set / get the eigenvector field through which to ingrate. It is possible to integrate using the major, medium or minor eigenvector field. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to positive infinity. The minor eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity. The medium eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues.

void vtkHyperStreamline::SetIntegrationEigenvectorToMajor | ( |  | ) | `[inline]`

Set / get the eigenvector field through which to ingrate. It is possible to integrate using the major, medium or minor eigenvector field. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to positive infinity. The minor eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity. The medium eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues.

Definition at line 144 of file vtkHyperStreamline.h.

References VTK_INTEGRATE_MAJOR_EIGENVECTOR.

void vtkHyperStreamline::SetIntegrationEigenvectorToMedium | ( |  | ) | `[inline]`

Set / get the eigenvector field through which to ingrate. It is possible to integrate using the major, medium or minor eigenvector field. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to positive infinity. The minor eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity. The medium eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues.

Definition at line 146 of file vtkHyperStreamline.h.

References VTK_INTEGRATE_MEDIUM_EIGENVECTOR.

void vtkHyperStreamline::SetIntegrationEigenvectorToMinor | ( |  | ) | `[inline]`

Set / get the eigenvector field through which to ingrate. It is possible to integrate using the major, medium or minor eigenvector field. The major eigenvector is the eigenvector whose corresponding eigenvalue is closest to positive infinity. The minor eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity. The medium eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues.

Definition at line 148 of file vtkHyperStreamline.h.

References VTK_INTEGRATE_MINOR_EIGENVECTOR.

void vtkHyperStreamline::IntegrateMajorEigenvector | ( |  | ) | `[inline]`

| 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. Definition at line 156 of file vtkHyperStreamline.h.

void vtkHyperStreamline::IntegrateMediumEigenvector | ( |  | ) | `[inline]`

| Use the medium eigenvector field as the vector field through which to integrate. The medium eigenvector is the eigenvector whose corresponding eigenvalue is between the major and minor eigenvalues. Definition at line 164 of file vtkHyperStreamline.h.

void vtkHyperStreamline::IntegrateMinorEigenvector | ( |  | ) | `[inline]`

| Use the minor eigenvector field as the vector field through which to integrate. The minor eigenvector is the eigenvector whose corresponding eigenvalue is closest to negative infinity. Definition at line 172 of file vtkHyperStreamline.h.

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]`

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

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]`

| 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 void vtkHyperStreamline::SetIntegrationDirection | ( | int |  | ) | `[virtual]`

| Specify the direction in which to integrate the hyperstreamline.

virtual int vtkHyperStreamline::GetIntegrationDirection | ( |  | ) | `[virtual]`

| Specify the direction in which to integrate the hyperstreamline.

void vtkHyperStreamline::SetIntegrationDirectionToForward | ( |  | ) | `[inline]`

| Specify the direction in which to integrate the hyperstreamline. Definition at line 196 of file vtkHyperStreamline.h. References VTK_INTEGRATE_FORWARD.

void vtkHyperStreamline::SetIntegrationDirectionToBackward | ( |  | ) | `[inline]`

| Specify the direction in which to integrate the hyperstreamline. Definition at line 198 of file vtkHyperStreamline.h. References VTK_INTEGRATE_BACKWARD.

void vtkHyperStreamline::SetIntegrationDirectionToIntegrateBothDirections | ( |  | ) | `[inline]`

| Specify the direction in which to integrate the hyperstreamline. Definition at line 200 of file vtkHyperStreamline.h. References VTK_INTEGRATE_BOTH_DIRECTIONS.

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]`

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

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]`

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

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]`

| 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 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]`

| 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 void vtkHyperStreamline::LogScalingOn | ( |  | ) | `[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 void vtkHyperStreamline::LogScalingOff | ( |  | ) | `[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.

void vtkHyperStreamline::Execute | ( |  | ) | `[protected, virtual]`

| This method is the old style execute method Reimplemented from vtkSource.

void vtkHyperStreamline::BuildTube | ( |  | ) | `[protected]`

## Member Data Documentation

int vtkHyperStreamline::StartFrom`[protected]`

| Definition at line 244 of file vtkHyperStreamline.h.

vtkIdType vtkHyperStreamline::StartCell`[protected]`

| Definition at line 247 of file vtkHyperStreamline.h.

int vtkHyperStreamline::StartSubId`[protected]`

| Definition at line 248 of file vtkHyperStreamline.h.

float vtkHyperStreamline::StartPCoords[3]`[protected]`

| Definition at line 249 of file vtkHyperStreamline.h.

float vtkHyperStreamline::StartPosition[3]`[protected]`

| Definition at line 252 of file vtkHyperStreamline.h.

vtkHyperArray* vtkHyperStreamline::Streamers`[protected]`

| Definition at line 255 of file vtkHyperStreamline.h.

int vtkHyperStreamline::NumberOfStreamers`[protected]`

| Definition at line 256 of file vtkHyperStreamline.h.

float vtkHyperStreamline::MaximumPropagationDistance`[protected]`

| Definition at line 259 of file vtkHyperStreamline.h.

int vtkHyperStreamline::IntegrationDirection`[protected]`

| Definition at line 262 of file vtkHyperStreamline.h.

float vtkHyperStreamline::IntegrationStepLength`[protected]`

| Definition at line 265 of file vtkHyperStreamline.h.

float vtkHyperStreamline::StepLength`[protected]`

| Definition at line 268 of file vtkHyperStreamline.h.

float vtkHyperStreamline::TerminalEigenvalue`[protected]`

| Definition at line 271 of file vtkHyperStreamline.h.

int vtkHyperStreamline::NumberOfSides`[protected]`

| Definition at line 274 of file vtkHyperStreamline.h.

float vtkHyperStreamline::Radius`[protected]`

| Definition at line 277 of file vtkHyperStreamline.h.

int vtkHyperStreamline::LogScaling`[protected]`

| Definition at line 280 of file vtkHyperStreamline.h.

int vtkHyperStreamline::IntegrationEigenvector`[protected]`

| Definition at line 283 of file vtkHyperStreamline.h.

The documentation for this class was generated from the following file:

- Graphics/vtkHyperStreamline.h