VTK
|
project a polyline onto a terrain More...
#include <vtkProjectedTerrainPath.h>
Inherits vtkPolyDataAlgorithm.
Public Types | |
enum | { SIMPLE_PROJECTION =0, NONOCCLUDED_PROJECTION, HUG_PROJECTION } |
Public Member Functions | |
void | SetSourceConnection (vtkAlgorithmOutput *algOutput) |
void | SetSourceData (vtkImageData *source) |
vtkImageData * | GetSource () |
virtual void | SetProjectionMode (int) |
virtual int | GetProjectionMode () |
void | SetProjectionModeToSimple () |
void | SetProjectionModeToNonOccluded () |
void | SetProjectionModeToHug () |
virtual void | SetHeightOffset (double) |
virtual double | GetHeightOffset () |
virtual void | SetHeightTolerance (double) |
virtual double | GetHeightTolerance () |
virtual void | SetMaximumNumberOfLines (vtkIdType) |
virtual vtkIdType | GetMaximumNumberOfLines () |
Static Public Member Functions | |
static vtkProjectedTerrainPath * | New () |
Protected Member Functions | |
vtkProjectedTerrainPath () | |
~vtkProjectedTerrainPath () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
void | GetImageIndex (double x[3], double loc[2], int ij[2]) |
double | GetHeight (double loc[2], int ij[2]) |
void | ComputeError (vtkIdType edgeId) |
void | RemoveOcclusions () |
void | HugTerrain () |
void | SplitEdge (vtkIdType eId, double t) |
Protected Attributes | |
int | ProjectionMode |
double | HeightOffset |
double | HeightTolerance |
vtkIdType | MaximumNumberOfLines |
int | Dimensions [3] |
int | Extent [6] |
double | Origin [3] |
double | Spacing [3] |
vtkDataArray * | Heights |
vtkPoints * | Points |
vtkIdType | NumLines |
vtkPriorityQueue * | PositiveLineError |
vtkPriorityQueue * | NegativeLineError |
vtkEdgeList * | EdgeList |
typedef vtkPolyDataAlgorithm | Superclass |
static int | IsTypeOf (const char *type) |
static vtkProjectedTerrainPath * | SafeDownCast (vtkObjectBase *o) |
virtual int | IsA (const char *type) |
vtkProjectedTerrainPath * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual vtkObjectBase * | NewInstanceInternal () const |
project a polyline onto a terrain
vtkProjectedTerrainPath projects an input polyline onto a terrain. (The terrain is defined by a 2D height image and is the second input to the filter.) The polyline projection is controlled via several modes as follows. 1) Simple mode projects the polyline points onto the terrain, taking into account the height offset instance variable. 2) Non-occluded mode insures that no parts of the polyline are occluded by the terrain (e.g. a line passes through a mountain). This may require recursive subdivision of the polyline. 3) Hug mode insures that the polyine points remain within a constant distance from the surface. This may also require recursive subdivision of the polyline. Note that both non-occluded mode and hug mode also take into account the height offset, so it is possible to create paths that hug terrain a certain distance above it. To use this filter, define two inputs: 1) a polyline, and 2) an image whose scalar values represent a height field. Then specify the mode, and the height offset to use.
An description of the algorithm is as follows. The filter begins by projecting the polyline points to the image (offset by the specified height offset). If the mode is non-occluded or hug, then the maximum error along each line segment is computed and placed into a priority queue. Each line segment is then split at the point of maximum error, and the two new line segments are evaluated for maximum error. This process continues until the line is not occluded by the terrain (non-occluded mode) or satisfies the error on variation from the surface (hug mode). (Note this process is repeated for each polyline in the input. Also, the maximum error is computed in two parts: a maximum positive error and maximum negative error. If the polyline is above the terrain–i.e., the height offset is positive–in non-occluded or hug mode all negative errors are eliminated. If the polyline is below the terrain–i.e., the height offset is negative–in non-occluded or hug mode all positive errors are eliminated.)
Definition at line 81 of file vtkProjectedTerrainPath.h.
typedef vtkPolyDataAlgorithm vtkProjectedTerrainPath::Superclass |
Standard methids for printing and determining type information.
Definition at line 86 of file vtkProjectedTerrainPath.h.
anonymous enum |
Enumerator | |
---|---|
SIMPLE_PROJECTION | |
NONOCCLUDED_PROJECTION | |
HUG_PROJECTION |
Definition at line 107 of file vtkProjectedTerrainPath.h.
|
protected |
|
protected |
|
static |
Standard methids for printing and determining type information.
|
virtual |
Standard methids for printing and determining type information.
|
static |
Standard methids for printing and determining type information.
|
protectedvirtual |
Standard methids for printing and determining type information.
vtkProjectedTerrainPath* vtkProjectedTerrainPath::NewInstance | ( | ) | const |
Standard methids for printing and determining type information.
void vtkProjectedTerrainPath::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
Standard methids for printing and determining type information.
|
static |
Instantiate the class.
void vtkProjectedTerrainPath::SetSourceData | ( | vtkImageData * | source | ) |
Specify the second input (the terrain) onto which the polyline(s) should be projected. Note: This assigns a data object as the input terrain. To establish a pipeline connection, use SetSourceConnection() method.
vtkImageData* vtkProjectedTerrainPath::GetSource | ( | ) |
Specify the second input (the terrain) onto which the polyline(s) should be projected. Note: This assigns a data object as the input terrain. To establish a pipeline connection, use SetSourceConnection() method.
void vtkProjectedTerrainPath::SetSourceConnection | ( | vtkAlgorithmOutput * | algOutput | ) |
Specify the second input (the terrain) onto which the polyline(s) should be projected. Note: vtkImageData* is required
|
virtual |
Determine how to control the projection process. Simple projection just projects the original polyline points. Non-occluded projection insures that the polyline does not intersect the terrain surface. Hug projection is similar to non-occulded projection except that produces a path that is nearly parallel to the terrain (within the user specified height tolerance).
|
virtual |
Determine how to control the projection process. Simple projection just projects the original polyline points. Non-occluded projection insures that the polyline does not intersect the terrain surface. Hug projection is similar to non-occulded projection except that produces a path that is nearly parallel to the terrain (within the user specified height tolerance).
|
inline |
Determine how to control the projection process. Simple projection just projects the original polyline points. Non-occluded projection insures that the polyline does not intersect the terrain surface. Hug projection is similar to non-occulded projection except that produces a path that is nearly parallel to the terrain (within the user specified height tolerance).
Definition at line 119 of file vtkProjectedTerrainPath.h.
|
inline |
Determine how to control the projection process. Simple projection just projects the original polyline points. Non-occluded projection insures that the polyline does not intersect the terrain surface. Hug projection is similar to non-occulded projection except that produces a path that is nearly parallel to the terrain (within the user specified height tolerance).
Definition at line 121 of file vtkProjectedTerrainPath.h.
|
inline |
Determine how to control the projection process. Simple projection just projects the original polyline points. Non-occluded projection insures that the polyline does not intersect the terrain surface. Hug projection is similar to non-occulded projection except that produces a path that is nearly parallel to the terrain (within the user specified height tolerance).
Definition at line 123 of file vtkProjectedTerrainPath.h.
|
virtual |
This is the height above (or below) the terrain that the projected path should be. Positive values indicate distances above the terrain; negative values indicate distances below the terrain.
|
virtual |
This is the height above (or below) the terrain that the projected path should be. Positive values indicate distances above the terrain; negative values indicate distances below the terrain.
|
virtual |
This is the allowable variation in the altitude of the path with respect to the variation in the terrain. It only comes into play if the hug projection mode is enabled.
|
virtual |
This is the allowable variation in the altitude of the path with respect to the variation in the terrain. It only comes into play if the hug projection mode is enabled.
|
virtual |
This instance variable can be used to limit the total number of line segments created during subdivision. Note that the number of input line segments will be the minimum number that cab be output.
|
virtual |
This instance variable can be used to limit the total number of line segments created during subdivision. Note that the number of input line segments will be the minimum number that cab be output.
|
protectedvirtual |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 168 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 169 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 170 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 171 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 174 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 175 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 176 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 177 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 178 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 179 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 180 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 184 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 185 of file vtkProjectedTerrainPath.h.
|
protected |
Definition at line 188 of file vtkProjectedTerrainPath.h.