[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