VTK
|
generate hyperstreamline in arbitrary dataset More...
#include <vtkHyperStreamline.h>
Public Types | |
typedef vtkPolyDataAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
![]() | |
typedef vtkObject | Superclass |
enum | DesiredOutputPrecision { SINGLE_PRECISION, DOUBLE_PRECISION, DEFAULT_PRECISION } |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkHyperStreamline * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | SetStartLocation (vtkIdType cellId, int subId, double pcoords[3]) |
vtkIdType | GetStartLocation (int &subId, double pcoords[3]) |
void | SetStartPosition (double x[3]) |
void | SetStartPosition (double x, double y, double z) |
double * | GetStartPosition () |
void | SetStartLocation (vtkIdType cellId, int subId, double r, double s, double t) |
virtual void | SetMaximumPropagationDistance (double) |
virtual double | GetMaximumPropagationDistance () |
virtual void | SetIntegrationEigenvector (int) |
virtual int | GetIntegrationEigenvector () |
void | SetIntegrationEigenvectorToMajor () |
void | SetIntegrationEigenvectorToMedium () |
void | SetIntegrationEigenvectorToMinor () |
void | IntegrateMajorEigenvector () |
void | IntegrateMediumEigenvector () |
void | IntegrateMinorEigenvector () |
virtual void | SetIntegrationStepLength (double) |
virtual double | GetIntegrationStepLength () |
virtual void | SetStepLength (double) |
virtual double | GetStepLength () |
virtual void | SetIntegrationDirection (int) |
virtual int | GetIntegrationDirection () |
void | SetIntegrationDirectionToForward () |
void | SetIntegrationDirectionToBackward () |
void | SetIntegrationDirectionToIntegrateBothDirections () |
virtual void | SetTerminalEigenvalue (double) |
virtual double | GetTerminalEigenvalue () |
virtual void | SetNumberOfSides (int) |
virtual int | GetNumberOfSides () |
virtual void | SetRadius (double) |
virtual double | GetRadius () |
virtual void | SetLogScaling (int) |
virtual int | GetLogScaling () |
virtual void | LogScalingOn () |
virtual void | LogScalingOff () |
![]() | |
vtkPolyDataAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
vtkDataObject * | GetInput () |
vtkDataObject * | GetInput (int port) |
vtkPolyData * | GetPolyDataInput (int port) |
vtkPolyData * | GetOutput () |
vtkPolyData * | GetOutput (int) |
virtual void | SetOutput (vtkDataObject *d) |
virtual int | ProcessRequest (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
void | SetInputData (vtkDataObject *) |
void | SetInputData (int, vtkDataObject *) |
void | AddInputData (vtkDataObject *) |
void | AddInputData (int, vtkDataObject *) |
![]() | |
vtkAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | HasExecutive () |
vtkExecutive * | GetExecutive () |
virtual void | SetExecutive (vtkExecutive *executive) |
virtual int | ModifyRequest (vtkInformation *request, int when) |
vtkInformation * | GetInputPortInformation (int port) |
vtkInformation * | GetOutputPortInformation (int port) |
int | GetNumberOfInputPorts () |
int | GetNumberOfOutputPorts () |
void | UpdateProgress (double amount) |
vtkInformation * | GetInputArrayInformation (int idx) |
void | RemoveAllInputs () |
vtkDataObject * | GetOutputDataObject (int port) |
virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | RemoveInputConnection (int port, int idx) |
virtual void | RemoveAllInputConnections (int port) |
int | GetNumberOfInputConnections (int port) |
int | GetTotalNumberOfInputConnections () |
vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index, int &algPort) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index) |
vtkExecutive * | GetInputExecutive (int port, int index) |
vtkInformation * | GetInputInformation (int port, int index) |
vtkInformation * | GetOutputInformation (int port) |
virtual void | UpdateInformation () |
virtual void | PropagateUpdateExtent () |
virtual void | UpdateWholeExtent () |
void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
virtual double | ComputePriority () |
int | SetUpdateExtentToWholeExtent (int port) |
int | SetUpdateExtentToWholeExtent () |
void | SetUpdateExtent (int port, int extent[6]) |
int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
virtual vtkInformation * | GetInformation () |
virtual void | SetInformation (vtkInformation *) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
virtual void | SetAbortExecute (int) |
virtual int | GetAbortExecute () |
virtual void | AbortExecuteOn () |
virtual void | AbortExecuteOff () |
virtual void | SetProgress (double) |
virtual double | GetProgress () |
void | SetProgressText (const char *ptext) |
virtual char * | GetProgressText () |
virtual unsigned long | GetErrorCode () |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
vtkDataObject * | GetInputDataObject (int port, int connection) |
virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
virtual void | SetInputDataObject (int port, vtkDataObject *data) |
virtual void | SetInputDataObject (vtkDataObject *data) |
virtual void | AddInputDataObject (int port, vtkDataObject *data) |
virtual void | AddInputDataObject (vtkDataObject *data) |
vtkAlgorithmOutput * | GetOutputPort (int index) |
vtkAlgorithmOutput * | GetOutputPort () |
vtkAlgorithm * | GetInputAlgorithm () |
vtkExecutive * | GetInputExecutive () |
vtkInformation * | GetInputInformation () |
virtual void | Update (int port) |
virtual void | Update () |
virtual void | SetReleaseDataFlag (int) |
virtual int | GetReleaseDataFlag () |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output) |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
void | SetUpdateExtent (int port, int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int extent[6]) |
int * | GetUpdateExtent () |
int * | GetUpdateExtent (int port) |
void | GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int extent[6]) |
void | GetUpdateExtent (int port, int extent[6]) |
int | GetUpdatePiece () |
int | GetUpdatePiece (int port) |
int | GetUpdateNumberOfPieces () |
int | GetUpdateNumberOfPieces (int port) |
int | GetUpdateGhostLevel () |
int | GetUpdateGhostLevel (int port) |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkHyperStreamline * | SafeDownCast (vtkObjectBase *o) |
static vtkHyperStreamline * | New () |
![]() | |
static vtkPolyDataAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkPolyDataAlgorithm * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkAlgorithm * | SafeDownCast (vtkObjectBase *o) |
static void | SetDefaultExecutivePrototype (vtkExecutive *proto) |
static vtkInformationIntegerKey * | INPUT_IS_OPTIONAL () |
static vtkInformationIntegerKey * | INPUT_IS_REPEATABLE () |
static vtkInformationInformationVectorKey * | INPUT_REQUIRED_FIELDS () |
static vtkInformationStringVectorKey * | INPUT_REQUIRED_DATA_TYPE () |
static vtkInformationInformationVectorKey * | INPUT_ARRAYS_TO_PROCESS () |
static vtkInformationIntegerKey * | INPUT_PORT () |
static vtkInformationIntegerKey * | INPUT_CONNECTION () |
static vtkInformationIntegerKey * | PRESERVES_DATASET () |
static vtkInformationIntegerKey * | PRESERVES_GEOMETRY () |
static vtkInformationIntegerKey * | PRESERVES_BOUNDS () |
static vtkInformationIntegerKey * | PRESERVES_TOPOLOGY () |
static vtkInformationIntegerKey * | PRESERVES_ATTRIBUTES () |
static vtkInformationIntegerKey * | PRESERVES_RANGES () |
static vtkInformationIntegerKey * | MANAGES_METAINFORMATION () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkHyperStreamline () | |
~vtkHyperStreamline () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
int | BuildTube (vtkDataSet *input, vtkPolyData *output) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
![]() | |
vtkPolyDataAlgorithm () | |
~vtkPolyDataAlgorithm () | |
virtual int | RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
![]() | |
vtkAlgorithm () | |
~vtkAlgorithm () | |
virtual void | SetNumberOfInputPorts (int n) |
virtual void | SetNumberOfOutputPorts (int n) |
int | InputPortIndexInRange (int index, const char *action) |
int | OutputPortIndexInRange (int index, const char *action) |
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
virtual vtkExecutive * | CreateDefaultExecutive () |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | SetNumberOfInputConnections (int port, int n) |
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
void | SetInputDataInternal (int port, vtkDataObject *input) |
void | AddInputDataInternal (int port, vtkDataObject *input) |
virtual void | SetErrorCode (unsigned long) |
Protected Attributes | |
int | StartFrom |
vtkIdType | StartCell |
int | StartSubId |
double | StartPCoords [3] |
double | StartPosition [3] |
vtkHyperArray * | Streamers |
int | NumberOfStreamers |
double | MaximumPropagationDistance |
int | IntegrationDirection |
double | IntegrationStepLength |
double | StepLength |
double | TerminalEigenvalue |
int | NumberOfSides |
double | Radius |
int | LogScaling |
int | IntegrationEigenvector |
![]() | |
vtkInformation * | Information |
double | Progress |
char * | ProgressText |
unsigned long | ErrorCode |
Additional Inherited Members | |
![]() | |
int | AbortExecute |
![]() | |
static vtkInformationIntegerKey * | PORT_REQUIREMENTS_FILLED () |
![]() | |
static vtkExecutive * | DefaultExecutivePrototype |
generate hyperstreamline in arbitrary dataset
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.
Definition at line 67 of file vtkHyperStreamline.h.
Definition at line 70 of file vtkHyperStreamline.h.
|
protected |
|
protected |
|
static |
|
virtual |
Reimplemented from vtkPolyDataAlgorithm.
|
static |
|
protectedvirtual |
Reimplemented from vtkPolyDataAlgorithm.
vtkHyperStreamline* vtkHyperStreamline::NewInstance | ( | ) | const |
void vtkHyperStreamline::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
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.
void vtkHyperStreamline::SetStartLocation | ( | vtkIdType | cellId, |
int | subId, | ||
double | 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, | ||
double | r, | ||
double | s, | ||
double | 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, |
double | 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 | ( | double | 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 | ( | double | x, |
double | y, | ||
double | 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.
double* vtkHyperStreamline::GetStartPosition | ( | ) |
Get the start position of the hyperstreamline in global x-y-z coordinates.
|
virtual |
Set / get the maximum length of the hyperstreamline expressed as absolute distance (i.e., arc length) value.
|
virtual |
Set / get the maximum length of the hyperstreamline expressed as absolute distance (i.e., arc length) value.
|
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 |
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.
|
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 129 of file vtkHyperStreamline.h.
|
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 131 of file vtkHyperStreamline.h.
|
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 133 of file vtkHyperStreamline.h.
|
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 141 of file vtkHyperStreamline.h.
|
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 149 of file vtkHyperStreamline.h.
|
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 157 of file vtkHyperStreamline.h.
|
virtual |
Set / get a nominal integration step size (expressed as a fraction of the size of each cell).
|
virtual |
Set / get a nominal integration step size (expressed as a fraction of the size of each cell).
|
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 |
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 |
Specify the direction in which to integrate the hyperstreamline.
|
virtual |
Specify the direction in which to integrate the hyperstreamline.
|
inline |
Specify the direction in which to integrate the hyperstreamline.
Definition at line 181 of file vtkHyperStreamline.h.
|
inline |
Specify the direction in which to integrate the hyperstreamline.
Definition at line 183 of file vtkHyperStreamline.h.
|
inline |
Specify the direction in which to integrate the hyperstreamline.
Definition at line 185 of file vtkHyperStreamline.h.
|
virtual |
Set/get terminal eigenvalue. If major eigenvalue falls below this value, hyperstreamline terminates propagation.
|
virtual |
Set/get terminal eigenvalue. If major eigenvalue falls below this value, hyperstreamline terminates propagation.
|
virtual |
Set / get the number of sides for the hyperstreamlines. At a minimum, number of sides is 3.
|
virtual |
Set / get the number of sides for the hyperstreamlines. At a minimum, number of sides is 3.
|
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 |
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 |
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 |
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 |
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 |
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.
|
protectedvirtual |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkPolyDataAlgorithm.
|
protected |
|
protectedvirtual |
Fill the input port information objects for this algorithm. This is invoked by the first call to GetInputPortInformation for each port so subclasses can specify what they can handle.
Reimplemented from vtkPolyDataAlgorithm.
|
protected |
Definition at line 231 of file vtkHyperStreamline.h.
|
protected |
Definition at line 234 of file vtkHyperStreamline.h.
|
protected |
Definition at line 235 of file vtkHyperStreamline.h.
|
protected |
Definition at line 236 of file vtkHyperStreamline.h.
|
protected |
Definition at line 239 of file vtkHyperStreamline.h.
|
protected |
Definition at line 242 of file vtkHyperStreamline.h.
|
protected |
Definition at line 243 of file vtkHyperStreamline.h.
|
protected |
Definition at line 246 of file vtkHyperStreamline.h.
|
protected |
Definition at line 249 of file vtkHyperStreamline.h.
|
protected |
Definition at line 252 of file vtkHyperStreamline.h.
|
protected |
Definition at line 255 of file vtkHyperStreamline.h.
|
protected |
Definition at line 258 of file vtkHyperStreamline.h.
|
protected |
Definition at line 261 of file vtkHyperStreamline.h.
|
protected |
Definition at line 264 of file vtkHyperStreamline.h.
|
protected |
Definition at line 267 of file vtkHyperStreamline.h.
|
protected |
Definition at line 270 of file vtkHyperStreamline.h.