[vtkusers] OfficeTubes.tcl - TCL vs. C++ Anomaly

Divya Rathore divyaksr at iitk.ac.in
Tue Sep 6 10:57:38 EDT 2005


Thanks for the reply, Amy!

Yes, that's what I am worried about.. the randomness.

Typically what happens is that TCL version produces the same result in all 
runs and C++ version does the same with it's result, thought both of them 
don't match. hence, I am really unable to understand the role of randomness.
In such a scenario, which one do I trust? How could I depict the real 
situation? Or, where am I wrong?

Could somebody try it for me if I send the whole C++ program? You will have 
to just copy and paste it over a running VTK C++ program and run it 
supplying the required data files.

warm regards,
D. Rathore.


----- Original Message ----- 
From: "Amy Squillacote" <amy.squillacote at kitware.com>
To: "Divya Rathore" <divyaksr at iitk.ac.in>; "Divya Rathore" 
<divyaksr at iitk.ac.in>; <vtkusers at vtk.org>
Sent: Tuesday, September 06, 2005 8:17 PM
Subject: Re: [vtkusers] OfficeTubes.tcl - TCL vs. C++ Anomaly


> The difference you are seeing has nothing to do with typecasting.  The 
> reason (as you guessed in your last e-mail to the list) is that the 
> positions of the points inside the sphere produced by vtkPointSource are 
> chosen randomly.  From the header file for that class:
>
> // By default location of the points is random within the sphere. It is
> // also possible to generate random points only on the surface of the
> // sphere.
>
> In the officeTube.tcl example (in 
> VTK/Examples/VisualizationAlgorithms/Tcl), vtkStreamLine is using a 
> single, explicitly-specified point to produce a streamline.  In 
> officeTubes.tcl (in the same source code directory), vtkPointSource is 
> being used to randomly select 6 points within a sphere with a radius of 
> 0.15, so the points won't necessarily be exactly the same.  Do you get the 
> same results each time you run the officeTubes.tcl Tcl script?
>
> - Amy
>
> At 04:10 AM 9/5/2005, Divya Rathore wrote:
>>Just a thought..
>>
>>Could it be that straight typecasting to (vtkDataSet *)  as in:
>>
>>streamer->SetSource((vtkDataSet *)seeds->GetOutput());
>>
>>be causing the problem? To be noted is that SetSource accepts vtkDataSet* 
>>and Getoutput returns vtkPolyData*
>>
>>warm regards,
>>D. Rathore
>>
>>
>>----- Original Message ----- From: "Divya Rathore" <divyaksr at iitk.ac.in>
>>To: <vtkusers at vtk.org>
>>Sent: Monday, September 05, 2005 12:59 PM
>>Subject: [vtkusers] OfficeTubes.tcl - TCL vs. C++ Anomaly
>>
>>
>>>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);
>>>
>>>
>>>
>>>
>>>_______________________________________________
>>>This is the private VTK discussion list. Please keep messages on-topic. 
>>>Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>>>Follow this link to subscribe/unsubscribe:
>>>http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>>_______________________________________________
>>This is the private VTK discussion list. Please keep messages on-topic. 
>>Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>>Follow this link to subscribe/unsubscribe:
>>http://www.vtk.org/mailman/listinfo/vtkusers
> 





More information about the vtkusers mailing list