[vtkusers] hedgehog error...
Luke Hetrick
lhetrick at nnu.edu
Mon Jun 11 18:13:35 EDT 2012
Hello,
I am fairly new to VTK and am going through the Visualizing Toolkit 4th
edition text and am hitting a problem in one of the examples. When I go to
make the pipeline to connect the data with the hedgehog function, I do not
know what command to use. In the example, they use
HedgeHog->SetInputData(SGrid), where HedgeHog and Grid are classes definded
by the user, but HedgeHog does not have a member called SetInputData...I
have check the doxygen page and in my vtkpython wrapping. Does anyone know
how to connect this pipeline then? Here is the code I have written for
it...the line of interest lies one paragraph after the end of the nested
for loops. Please no laughing at my code, I am also new to C++ object
oriented programming as well.
#include "vtkPoints.h"
#include "vtkFloatArray.h"
#include "vtkMath.h"
#include "vtkPointData.h"
#include "vtkPolyDataMapper.h"
#include "vtkProperty.h"
#include "vtkStructuredGrid.h"
#include "vtkHedgeHog.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderWindow.h"
#include "
vtkInteractorStyleTrackballCamera.h"
int main ()
{
int i,j,k,kOffset,jOffset,offset;
float x[3],v[3],rMin=0.5,rMax=1.0,deltaRad,deltaZ;
float radius, theta;
static int dims[3]={13,11,11};
vtkStructuredGrid *grid = vtkStructuredGrid::New();
grid->SetDimensions(dims);
vtkPoints *points = vtkPoints::New();
points->Allocate(dims[0]*dims[1]*dims[2]);
vtkFloatArray *vector = vtkFloatArray::New();
vector->SetNumberOfComponents(3);
vector->SetNumberOfTuples(dims[0]*dims[1]*dims[2]);
deltaZ = 2.0 / (dims[2]-1);
deltaRad = (rMax-rMin) / (dims[1]-1);
v[2] = 0.0;
for (k=0; k<dims[2]; k++)
{
x[2] = -1.0 + k * deltaZ;
kOffset = k * dims[0] * dims[1];
for (j=0; j<dims[1]; j++)
{
radius= rMin + j * deltaRad;
jOffset= j * dims[0];
for (i=0; i<dims[0]; i++);
{
theta = i * vtkMath::DegreesFromRadians(15.0);
x[0]=radius *cos( theta );
x[1] = radius * sin( theta );
v[0] = -x[1];
v[1] = x[0];
offset=i + jOffset + kOffset;
points->InsertPoint( offset,x );
vector->InsertTuple( offset,v );
}
}
}
grid->SetPoints(points);
grid->GetPointData()->SetVectors( vector );
vtkHedgeHog *hog = vtkHedgeHog::New();
hog->SetVectorMode( vector );
hog->SetScaleFactor( 0.1 );
vtkPolyDataMapper *mapper = vtkPolyDataMapper::New();
mapper->SetInputConnection( hog->GetOutputPort() );
vtkActor *actor = vtkActor::New();
actor->SetMapper( mapper );
actor->GetProperty()->SetColor( 0,0,0 );
vtkRenderer *ren = vtkRenderer::New();
ren->AddActor( actor );
ren->SetBackground( 0.1,0.2,0.4 );
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer( ren );
renWin->SetSize( 500,500 );
vtkRenderWindowInteractor *wink = vtkRenderWindowInteractor::New();
wink->SetRenderWindow( renWin );
vtkInteractorStyleTrackballCamera *style =
vtkInteractorStyleTrackballCamera::New();
wink->SetInteractorStyle( style );
wink->Initialize();
wink->Start();
style->Delete();
wink->Delete();
renWin->Delete();
ren->Delete();
actor->Delete();
mapper->Delete();
hog->Delete();
vector->Delete();
points->Delete();
grid->Delete();
return 0;
}
Thank you for your help and support,
Luke H
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120611/d6146d5b/attachment.htm>
More information about the vtkusers
mailing list