[vtkusers] How do I output PolyData's points?

Mathieu Malaterre Mathieu.Malaterre at creatis.insa-lyon.fr
Wed Jul 9 08:41:23 EDT 2003


Add a

sphere Update

before trying to access any value.

HTH
mathieu

Matt Zumwalt wrote:
> Hi all,
>    I'm still having troubles trying to output a list containing a PolyData's 
> point coordinates.  It seems that when I try to access the PolyData's 
> geometry, I come up with zero points.  I've put a copy of my Tcl script 
> below.  
> 
>      This is what the script returns to the standard output:
> can't find package vtkParallelTCL 4.2
> can't find package vtkPatentedTCL 4.2
> points:
> numberOfPoints: 0
> 
>    Here is the Tcl script I'm using.  (The 'for' loop is getting skipped 
> entirely because, for some reason [[sphere GetOutput] GetNumberOfPoints] 
> returns a value of zero.):
> 
> 
> vtkSphereSource sphere 
>  sphere SetThetaResolution 8
>  sphere SetPhiResolution 8
> 
> set points [[sphere GetOutput] GetPoints]
> puts "points: $points"
> 
> set numberOfPoints [[sphere GetOutput] GetNumberOfPoints]
> puts "numberOfPoints: $numberOfPoints"
> 
> #make sure the array is cleared, then fill it with point info
> # ! the for loop never executes because $numberOfPoints = 0 !
> if {[array exists outarray]} {unset outarray}
> for {set i 0} {$i < $numberOfPoints} {incr i} {
>     set outarray($i) [points GetPoint $i]
>     puts "point $i\: $outarray($i)"
> }
> 
> take care,
>  Matt Z
> 
> 
> On Tuesday 08 July 2003 19:56, Amy Henderson wrote:
> 
>>At 08:51 PM 7/8/2003 +0000, Matt Zumwalt wrote:
>>
>>>Thanks Amy.
>>>    Possibly someone knows what I'm doing wrong in translating Amy's code
>>>from
>>>C++ to Tcl?  I've gotten the following error (tcl code included below):
>>>
>>>        Error in startup script: Object named: sphere, could not find
>>>        requested method: GetPoints
>>>        or the method was called with incorrect arguments.
>>>
>>>            while executing
>>>        "sphere GetPoints"
>>>           invoked from within
>>>        "set points [sphere GetPoints]"
>>>            (file "PointsToArray.tcl" line 6)
>>>
>>>
>>>This is what I've done in Tcl:
>>>
>>>package require vtk
>>>
>>>vtkSphereSource sphere
>>> sphere SetThetaResolution 8
>>> sphere SetPhiResolution 8
>>>set points [sphere GetPoints]
>>>set numberOfPoints [sphere GetNumberOfPoints]
>>
>>The above 2 lines should be:
>>
>>set points [[sphere GetOutput] GetPoints]
>>set numberOfPoints [[sphere GetOutput] GetNumberOfPoints]
>>
>>- Amy
>>
>>
>>>for {set i 0} {i < $numberOfPoints} {incr i} {
>>>    set outarray($i) [points GetPoint $i]
>>>}
>>>
>>>Thanks again,
>>>MattZ
>>>
>>>On Tuesday 08 July 2003 18:18, Amy Henderson wrote:
>>>
>>>>At 07:04 PM 7/8/2003 +0000, Matt Zumwalt wrote:
>>>>
>>>>>Hi all,
>>>>>    I'm trying to figure out how to generate a list containing the
>>>>>coordinates
>>>>>for all the points in a PolyData object.  I need to pass the list as
>>>>>parameters to one of the methods in an external program.   I'm sure
>>>>>there must be some simple way of doing this, but I can't figure it
>>>>>out.  Any help would be greatly appreciated.
>>>>
>>>>The following should work:
>>>>
>>>>vtkPoints *points = polyData->GetPoints();
>>>>int numPts = polyData->GetNumberOfPoints();
>>>>int i;
>>>>
>>>>float **ptArray = new float[numPts][3];
>>>>
>>>>for (i = 0; i < numPts; i++)
>>>>{
>>>>points->GetPoint(i, ptArray[i]);
>>>>}
>>>>
>>>>- Amy
>>>>
>>>>
>>>>>thanks,
>>>>> Matt Z
>>>>>_______________________________________________
>>>>>This is the private VTK discussion list.
>>>>>Please keep messages on-topic. Check the FAQ at:
>>>>><http://public.kitware.com/cgi-bin/vtkfaq>
>>>>>Follow this link to subscribe/unsubscribe:
>>>>>http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>--
>>>---------------------
>>>MSc Candidate
>>>Programme in Music Technology
>>>Department of Electronics
>>>University of York
>>>_______________________________________________
>>>This is the private VTK discussion list.
>>>Please keep messages on-topic. Check the FAQ at:
>>><http://public.kitware.com/cgi-bin/vtkfaq>
>>>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://public.kitware.com/cgi-bin/vtkfaq>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
> 


-- 
Mathieu Malaterre
CREATIS
28 Avenue du Doyen LEPINE
B.P. Lyon-Montchat
69394 Lyon Cedex 03
http://www.creatis.insa-lyon.fr/~malaterre/




More information about the vtkusers mailing list