Commit 4cca10ec authored by Will Schroeder's avatar Will Schroeder
Browse files

ENH: Added documentation.

parent 66a6f8eb
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,9 +13,15 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
//
// Appends one or more datasets together into a single UnstructuredGrid.
//
// .NAME vlAppendFilter - appends one or more datasets together into a single unstructured grid
// .SECTION Description
// vlAppendFilter is a filter that appends one of more datasets into a single
// unstructured grid. All geometry is extracted and appended, but point
// attributes (i.e., scalars, vectors, normals) are extracted and appended
// only if all datasets have the point attributes available. (For example,
// if one dataset has scalars but another does not, scalars will not be
// appended.)
#ifndef __vlAppendFilter_h
#define __vlAppendFilter_h
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,10 +13,15 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
//
// Appends one or more PolyData datasets together into a single
// PolyData dataset
//
// .NAME vlAppendPolyData - appends one or more polygonal datasets together
// .SECTION Description
// vlAppendPolyData is a filter that appends one of more polygonal datasets
// into a single polygonal dataset. All geometry is extracted and appended,
// but point attributes (i.e., scalars, vectors, normals) are extracted
// and appended only if all datasets have the point attributes available.
// (For example, if one dataset has scalars but another does not, scalars
// will not be appended.)
#ifndef __vlAppendPolyData_h
#define __vlAppendPolyData_h
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,9 +13,14 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
//
// Dividing cubes algorithm
//
// .NAME vlDividingCubes -
// .SECTION Description
// vlDividingCubes is a filter that generates points laying on a surface
// of constant scalar value (i.e., an iso-surface). Dense point clouds (i.e.,
// at screen resolution) will appear as a surface. Less dense clouds can be
// used as a source to generate streamlines or to generate "transparent"
// surfaces.
#ifndef __vlDividingCubes_h
#define __vlDividingCubes_h
......@@ -31,9 +34,13 @@ public:
char *GetClassName() {return "vlDividingCubes";};
void PrintSelf(ostream& os, vlIndent indent);
// Description:
// Set iso-surface value.
vlSetMacro(Value,float);
vlGetMacro(Value,float);
// Description:
// Specify separation distance between points.
vlSetClampMacro(Distance,float,1.0e-06,LARGE_FLOAT);
vlGetMacro(Distance,float);
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,7 +13,7 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
// .NAME vlExtractGeomtry - extract cells entirely within a apcecified sphere
// .NAME vlExtractGeomtry - extract cells that lie entirely within a specified sphere
// .SECTION Description
// vlExtractGeometry extracts from its input dataset all cells that are
// entirely within a specified sphere.
......@@ -33,9 +31,13 @@ public:
char *GetClassName() {return "vlExtractGeometry";};
void PrintSelf(ostream& os, vlIndent indent);
// Description:
// Set the radius of the sphere.
vlSetClampMacro(Radius,float, 0.0, LARGE_FLOAT);
vlGetMacro(Radius,float);
// Description:
// Set the center of the sphere.
vlSetVector3Macro(Center,float);
vlGetVectorMacro(Center,float);
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,10 +13,11 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
//
// Extracts cells where scalar value of every point in cell satisfies
// threshold criterion.
//
// .NAME vlMergeFilter - extract separate components of data from different datasets
// .SECTION Description
// vlMergeFilter is a filter that extracts separate components of data from
// different datasets and merges them into a single dataset.
#ifndef __vlMergeFilter_h
#define __vlMergeFilter_h
......@@ -53,19 +52,28 @@ public:
// Filter interface
void Update();
// Components to merge
// Description:
// Specify object from which to extract geometry information.
vlSetObjectMacro(Geometry,vlDataSet);
vlGetObjectMacro(Geometry,vlDataSet);
// Description:
// Specify object from which to extract scalar information.
vlSetObjectMacro(Scalars,vlDataSet);
vlGetObjectMacro(Scalars,vlDataSet);
// Description:
// Specify object from which to extract vector information.
vlSetObjectMacro(Vectors,vlDataSet);
vlGetObjectMacro(Vectors,vlDataSet);
// Description:
// Specify object from which to extract normal information.
vlSetObjectMacro(Normals,vlDataSet);
vlGetObjectMacro(Normals,vlDataSet);
// Description:
// Specify object from which to extract texture coordinates information.
vlSetObjectMacro(TCoords,vlDataSet);
vlGetObjectMacro(TCoords,vlDataSet);
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,9 +13,15 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
//
// Splat points using Gaussian distribution
//
// .NAME vlGaussianSplatter - splat points with Gaussian distribution
// .SECTION Description
// vlGaussianSplatter is a filter that injects input points into a structured
// points dataset. As each point is injected, it "splats" or distributes
// values to neighboring voxels in the structured points dataset. Data is
// distributed using a Gaussian distribution function. The distribution
// function is modified using scalar values (expands distribution) or normals
// (creates ellipsoidal distribution rather than spherical).
#ifndef __vlGaussianSplatter_h
#define __vlGaussianSplatter_h
......@@ -37,15 +41,27 @@ public:
void SetSampleDimensions(int dim[3]);
vlGetVectorMacro(SampleDimensions,int);
// Description:
// Specify the radius of propagation of the splat. This value is expressed
// as percentage of the sampling structured point set. Smaller numbers
// greatly reduce execution time.
vlSetClampMacro(Radius,float,0.0,1.0);
vlGetMacro(Radius,float);
// Description:
// Multiply Gaussian splat distribution by this value.
vlSetClampMacro(ScaleFactor,float,0.0,LARGE_FLOAT);
vlGetMacro(ScaleFactor,float);
// Description:
// Specify sharpness of decay of splat
vlSetMacro(ExponentFactor,float);
vlGetMacro(ExponentFactor,float);
// Description:
// Control the shape of elliptical splatting. Eccentricity is the ratio
// of the major axis (aligned along normal) to the minor (axes) aligned
// along other two axes.
vlSetClampMacro(Eccentricity,float,0.001,LARGE_FLOAT);
vlGetMacro(Eccentricity,float);
......@@ -53,18 +69,27 @@ public:
void SetModelBounds(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax);
vlGetVectorMacro(ModelBounds,float);
// Description:
// Turn on/off the generation of elliptical splats.
vlSetMacro(NormalWarping,int);
vlGetMacro(NormalWarping,int);
vlBooleanMacro(NormalWarping,int);
// Description:
// Turn on/off the scaling of splats by scalar value.
vlSetMacro(ScalarWarping,int);
vlGetMacro(ScalarWarping,int);
vlBooleanMacro(ScalarWarping,int);
// Description:
// Turn on/off the capping of the outside parts of the structured point
// set by setting to a specified cap value.
vlSetMacro(Capping,int);
vlGetMacro(Capping,int);
vlBooleanMacro(Capping,int);
// Description:
// Specify the cap value to use.
vlSetMacro(CapValue,float);
vlGetMacro(CapValue,float);
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,9 +13,23 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
// .NAME vlStreamLine - generate streamline in arbitrary dataset
// .SECTION Description
// vlStreamLine is a filter that generates a streamline for an arbitrary
// dataset. A streamline is a line that is everywhere tangent to the vector
// field. Scalar values are also calculated along the streamline and can be
// used to color the line. Streamlines are calculated by integrating from
// a starting point through the vector field. Integration can be performed
// forward in time (see where the line goes), backward in time (see where the
// line came from), or in both directions. It is also possible to compute
// vorticity along the streamline. Vorticity is the projection (i.e., dot
// product) of the flow rotation on the velocity vector, i.e., the rotation
// of flow around the streamline.
//
// Extracts geometry connected at common vertices.
//
// While the streamline representation is typically a line, it is also possible
// to generate a dashed line where the dash length is proportional to the
// magnitude of the vector velocity.
#ifndef __vlStreamLine_h
#define __vlStreamLine_h
......@@ -41,29 +53,51 @@ public:
void SetStartPosition(float x[3]);
float *GetStartPosition();
// Description:
// Specify the maximum length of the streamline expressed in elapsed time.
vlSetClampMacro(MaximumPropagationTime,float,0.0,LARGE_FLOAT);
vlGetMacro(MaximumPropagationTime,float);
// Description:
// Specify the maximum length of the streamline expressed in the number
// of integration steps.
vlSetClampMacro(MaximumSteps,int,1,LARGE_INTEGER);
vlGetMacro(MaximumSteps,int);
// Description:
// Specify the direction in which to integrate the streamline.
vlSetClampMacro(IntegrationDirection,int,
INTEGRATE_FORWARD,INTEGRATE_BOTH_DIRECTIONS);
vlGetMacro(IntegrationDirection,int);
// Description:
// Specify a nominal integration step size (expressed as a fraction of
// the size of each cell).
vlSetClampMacro(IntegrationStepLength,float,0.001,0.5);
vlGetMacro(IntegrationStepLength,float);
// Description:
// Specify the nominal length of the line segements used to graphically
// depict the streamline. This is a fractional value of the input bounding
// box.
vlSetClampMacro(RepresentationStepLength,float,0.0001,0.1);
vlGetMacro(RepresentationStepLength,float);
// Description:
// Turn on/off the computation of vorticity.
vlSetMacro(Vorticity,int);
vlGetMacro(Vorticity,int);
vlBooleanMacro(Vorticity,int);
// Description:
// Specify the length of a dash expressed in time.
vlSetClampMacro(DashTime,float,0.0,LARGE_FLOAT);
vlGetMacro(DashTime,float);
// Description:
// For each dash, specify the fraction of the dash that is "on". A factor
// of 1.0 will result in a continuous line, a factor of 0.5 will result in
// dashed that are half on and half off.
vlSetClampMacro(DashFactor,float,0.0,1.0);
vlGetMacro(DashFactor,float);
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -15,10 +13,17 @@ without the express written consent of the authors.
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
=========================================================================*/
//
// Generates a tube from input lines. If scalar data is present, will vary
// radius of tube (if turned on).
//
// .NAME vlTubeFilter - filter that generates tubes around lines
// .SECTION Description
// vlTubeFilter is a filter that generates a tube around each input line.
// The tubes are made up of triangle strips and rotate around the tube with
// the rotation of the line normals. (If no normals are present, they are
// computed automatically). The radius of the tube can be set to vary with
// scalar value. If the scalar value is speed (i.e., magnitude of velocity),
// the variation of the tube radius is such that it preserves mass flux in
// incompressible flow. The number of sides for the tube can also be
// specified.
#ifndef __vlTubeFilter_h
#define __vlTubeFilter_h
......@@ -32,16 +37,26 @@ public:
char *GetClassName() {return "vlTubeFilter";};
void PrintSelf(ostream& os, vlIndent indent);
// Description:
// Set the maximum tube radius (maximum because the tube radius may vary).
vlSetClampMacro(Radius,float,0.0,LARGE_FLOAT);
vlGetMacro(Radius,float);
// Description:
// Turn on/off the variation of tube radius with scalar value.
vlSetMacro(VaryRadius,int);
vlGetMacro(VaryRadius,int);
vlBooleanMacro(VaryRadius,int);
// Description:
// Set the number of sides for the tube. If n=0, line is generated. If
// n=1, ribbon is generated. For n=2, two ribbons in cross configuration
// are generated.
vlSetClampMacro(NumberOfSides,int,0,LARGE_INTEGER);
vlGetMacro(NumberOfSides,int);
// Description:
// Specify an initial offset rotation.
vlSetMacro(Rotation,float);
vlGetMacro(Rotation,float);
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -33,6 +31,8 @@ vlAppendFilter::~vlAppendFilter()
}
}
// Description:
// Add a dataset to the list of data to append.
void vlAppendFilter::AddInput(vlDataSet *ds)
{
if ( ! this->Input.IsItemPresent(ds) )
......@@ -43,6 +43,8 @@ void vlAppendFilter::AddInput(vlDataSet *ds)
}
}
// Description:
// Remove a dataset from the list of data to append.
void vlAppendFilter::RemoveInput(vlDataSet *ds)
{
if ( this->Input.IsItemPresent(ds) )
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -33,6 +31,8 @@ vlAppendPolyData::~vlAppendPolyData()
}
}
// Description:
// Add a dataset to the list of data to append.
void vlAppendPolyData::AddInput(vlPolyData *ds)
{
if ( ! this->Input.IsItemPresent(ds) )
......@@ -43,6 +43,8 @@ void vlAppendPolyData::AddInput(vlPolyData *ds)
}
}
// Description:
// Remove a dataset from the list of data to append.
void vlAppendPolyData::RemoveInput(vlPolyData *ds)
{
if ( this->Input.IsItemPresent(ds) )
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -18,6 +16,15 @@ Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
#include "ExtractG.hh"
#include "vlMath.hh"
// Description:
// Construct with selection sphere centered at (0,0,0) with radius 0.5.
vlExtractGeometry::vlExtractGeometry()
{
this->Radius = 0.5;
this->Center[0] = this->Center[1] = this->Center[2] = 0.0;
}
void vlExtractGeometry::Execute()
{
int ptId, numPts, i, cellId;
......@@ -32,7 +39,6 @@ void vlExtractGeometry::Execute()
vlIdList newCellPts(MAX_CELL_SIZE);
vlDebugMacro(<< "Extracting geometry in sphere");
this->Initialize();
//
// Loop over all points determining whether they are inside sphere. Copy if
......
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -19,6 +17,10 @@ Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994
#include "Splatter.hh"
#include "FScalars.hh"
// Description:
// Construct object with dimensions=(50,50,50); automatic computation of
// bounds; a splat radius of 0.1; an exponent factor of -5; and normal and
// scalar warping turned on.
vlGaussianSplatter::vlGaussianSplatter()
{
this->SampleDimensions[0] = 50;
......@@ -45,35 +47,9 @@ vlGaussianSplatter::vlGaussianSplatter()
this->CapValue = LARGE_FLOAT;
}
void vlGaussianSplatter::PrintSelf(ostream& os, vlIndent indent)
{
if (this->ShouldIPrint(vlGaussianSplatter::GetClassName()))
{
vlDataSetToStructuredPointsFilter::PrintSelf(os,indent);
os << indent << "Sample Dimensions: (" << this->SampleDimensions[0] << ", "
<< this->SampleDimensions[1] << ", "
<< this->SampleDimensions[2] << ")\n";
os << indent << "Radius: " << this->Radius << "\n";
os << indent << "Exponent Factor: " << this->ExponentFactor << "\n";
os << indent << "ModelBounds: \n";
os << indent << " Xmin,Xmax: (" << this->ModelBounds[0] << ", " << this->ModelBounds[1] << ")\n";
os << indent << " Ymin,Ymax: (" << this->ModelBounds[2] << ", " << this->ModelBounds[3] << ")\n";
os << indent << " Zmin,Zmax: (" << this->ModelBounds[4] << ", " << this->ModelBounds[5] << ")\n";
os << indent << "Normal Warping: " << (this->NormalWarping ? "On\n" : "Off\n");
os << indent << "Eccentricity: " << this->Eccentricity << "\n";
os << indent << "Scalar Warping: " << (this->ScalarWarping ? "On\n" : "Off\n");
os << indent << "Scale Factor: " << this->ScaleFactor << "\n";
os << indent << "Capping: " << (this->Capping ? "On\n" : "Off\n");
os << indent << "Cap Value: " << this->CapValue << "\n";
}
}
// Description:
// Set the (xmin,xmax, ymin,ymax, zmin,zmax) bounding box in which the
// sampling is performed.
void vlGaussianSplatter::SetModelBounds(float *bounds)
{
vlGaussianSplatter::SetModelBounds(bounds[0], bounds[1], bounds[2], bounds[3], bounds[4], bounds[5]);
......@@ -128,9 +104,6 @@ void vlGaussianSplatter::Execute()
int loc[3], ip, jp, kp, idir, jdir, kdir;
vlDebugMacro(<< "Splatting data");
//
// Initialize self; create output objects
//
this->Initialize();
//
// Make sure points are available
......@@ -226,6 +199,9 @@ void vlGaussianSplatter::Execute()
}
// Description:
// Compute the size of the sample bounding box automatically from the
// input data.
void vlGaussianSplatter::ComputeModelBounds()
{
float *bounds, maxDist;
......@@ -269,6 +245,8 @@ void vlGaussianSplatter::ComputeModelBounds()
}
}
// Description:
// Set the dimensions of the sampling structured point set.
void vlGaussianSplatter::SetSampleDimensions(int i, int j, int k)
{
int dim[3];
......@@ -644,3 +622,33 @@ void vlGaussianSplatter::SetScalar(int idx, float dist2)
NewScalars->SetScalar(idx,v);
}
}
void vlGaussianSplatter::PrintSelf(ostream& os, vlIndent indent)
{
if (this->ShouldIPrint(vlGaussianSplatter::GetClassName()))
{
vlDataSetToStructuredPointsFilter::PrintSelf(os,indent);
os << indent << "Sample Dimensions: (" << this->SampleDimensions[0] << ", "
<< this->SampleDimensions[1] << ", "
<< this->SampleDimensions[2] << ")\n";
os << indent << "Radius: " << this->Radius << "\n";
os << indent << "Exponent Factor: " << this->ExponentFactor << "\n";
os << indent << "ModelBounds: \n";
os << indent << " Xmin,Xmax: (" << this->ModelBounds[0] << ", " << this->ModelBounds[1] << ")\n";
os << indent << " Ymin,Ymax: (" << this->ModelBounds[2] << ", " << this->ModelBounds[3] << ")\n";
os << indent << " Zmin,Zmax: (" << this->ModelBounds[4] << ", " << this->ModelBounds[5] << ")\n";
os << indent << "Normal Warping: " << (this->NormalWarping ? "On\n" : "Off\n");
os << indent << "Eccentricity: " << this->Eccentricity << "\n";
os << indent << "Scalar Warping: " << (this->ScalarWarping ? "On\n" : "Off\n");
os << indent << "Scale Factor: " << this->ScaleFactor << "\n";
os << indent << "Capping: " << (this->Capping ? "On\n" : "Off\n");
os << indent << "Cap Value: " << this->CapValue << "\n";
}
}
......@@ -6,8 +6,6 @@
Date: $Date$
Version: $Revision$
Description:
---------------------------------------------------------------------------
This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.
......@@ -22,6 +20,32 @@ vlStreamLine::vlStreamLine()
}
// Description:
// Specify the start of the streamline in the cell coordinate system. That is,
// cellId and subId (if composite cell), and parametric coordinates.
void vlStreamLine::SetStartLocation(int cellId, int subId, float pcoords[3])
{
}
// Description:
// Get the starting location of the streamline in the cell corrdinate system.
int vlStreamLine::GetStartLocation(int& subId, float pcoords[3])
{
}
// Description:
// Specify the start of the streamline in the global coordinate system. Search
// must be performed to find initial cell to strart integration from.
void vlStreamLine::SetStartPosition(float x[3])
{
}