[vtkusers] OfficeTubes.tcl - TCL vs. C++ Anomaly
Divya Rathore
divyaksr at iitk.ac.in
Mon Sep 5 03:29:50 EDT 2005
Dear Folks,
Kindly excuse me for re-posting this mail but I wanted to get clarified
about a few doubts of mine. It would be really nice if some user or somebody
form Kitware could attend to this problem of mine.
I tried to convert officeTubes.tcl to a C++ program using MS VC++ 6.0. It
seems that the C++ version gets different start points than the TCL version
and hence the stream-tubes.
I digged further and found that 'officeTube.tcl' when converted to C++ works
perfectly fine. So we see that the following lines in 'officeTubes.tcl'
could be causing the problem:
-----
vtkPointSource seeds
seeds SetRadius 0.15
eval seeds SetCenter 0.1 2.1 0.5
seeds SetNumberOfPoints 6
..
..
..
vtkStreamLine streamer
streamer SetInput [reader GetOutput]
streamer SetSource [seeds GetOutput]
-----
How exactly does the class vtkPointSource generates 6 points inside a sphere
of given center and radius? Is it random? If so, is that what is causing the
problem in TCL to C++ conversion of 'officeTubes.tcl' and and that
'officeTube.tcl' doesn't use this makes it work?
It would be really nice if some user or somebody form Kitware could attend
to this problem of mine and suggest a solution.
warm regards,
D. Rathore
----- Original Message -----
From: "Divya Rathore" <divyaksr at iitk.ac.in>
To: <vtkusers at vtk.org>
Sent: Saturday, September 03, 2005 3:02 AM
Subject: [vtkusers] TCL vs. C++
Dear Users,
We tried to convert a TCL script to C++ regarding StreamTubes [Examples
>> VisualizationAlgorithms >> TCL >> officeTubes.tcl]. What we found is
that
the results are different.
Kindly suggest corrections in our code, if any. See attached lines of code.
warm regards,
- D. Rathore
- G. Bayu
--
The lines of code which we feel are causing the problem are:
******************
officeTubes.TCL
******************
vtkPointSource seeds
seeds SetRadius 0.15
eval seeds SetCenter 0.1 2.1 0.5
seeds SetNumberOfPoints 6
vtkRungeKutta4 integ
vtkStreamLine streamer
streamer SetInput [reader GetOutput]
streamer SetSource [seeds GetOutput]
streamer SetMaximumPropagationTime 500
streamer SetStepLength 0.5
streamer SetIntegrationStepLength 0.05
streamer SetIntegrationDirectionToIntegrateBothDirections
streamer SetIntegrator integ
******************
Following is our converted C++ code.
******************
vtkPointSource *seeds = vtkPointSource::New();
seeds->SetRadius(0.15);
seeds->SetCenter(0.1, 2.1, 0.5);
seeds->SetNumberOfPoints(6);
vtkRungeKutta4 *integ = vtkRungeKutta4::New();
vtkStreamLine *streamer = vtkStreamLine::New();
streamer->SetInput(reader->GetOutput());
streamer->SetSource((vtkDataSet *)seeds->GetOutput());
streamer->SetMaximumPropagationTime(500);
streamer->SetStepLength(0.5);
streamer->SetIntegrationStepLength(0.05);
streamer->SetIntegrationDirectionToIntegrateBothDirections();
streamer->SetIntegrator(integ);
More information about the vtkusers
mailing list