Thanks a lot! The code worked on the first go!

Thank you very much for saving me that much time!

Best,

Christian

-----Ursprüngliche Nachricht-----
Von: Eric E. Monson [mailto:emon...@cs.duke.edu] 
Gesendet: Dienstag, 16. März 2010 17:13
An: Utkarsh Ayachit
Cc: Dressler, Christian; paraview@paraview.org
Betreff: Re: [Paraview] Use existing texture map for 3D surface

Hey Christian,

Something like this should work:

# =============
pdi = self.GetPolyDataInput()
pdo = self.GetPolyDataOutput()

numPts = pdi.GetPoints().GetNumberOfPoints()
Uarray = pdi.GetPointData().GetArray('U')
Varray = pdi.GetPointData().GetArray('V')

tc = vtk.vtkDoubleArray()
tc.SetNumberOfComponents(2)
tc.SetNumberOfTuples(numPts)
tc.SetName('TCoords')

for ii in range(numPts):
  Uval = Uarray.GetTuple1(ii)
  Vval = Varray.GetTuple1(ii)
  tc.SetTuple2(ii,Uval,Vval)

pdo.ShallowCopy(pdi)
pdo.GetPointData().AddArray(tc)
pdo.GetPointData().SetActiveTCoords('TCoords')
# =============

-Eric


On Mar 16, 2010, at 9:37 AM, Utkarsh Ayachit wrote:

> Christian,
> 
> Sorry I've been meaning to write up a quick  script for you. For
> starters take a look at:
> 
> http://www.paraview.org/Wiki/Python_Programmable_Filter
> http://www.paraview.org/Wiki/Python_recipes
> 
> Here's the algorithm:
> * Create a new vtkDoubleArray (or another vtkDataArray subclass) with
> 2 components and number of tuples = number of points.
> * Get access the to two input arrays you want to use an texture coordinates.
> * Iterate over each value in the two array and insert them as the two
> components in the new array
> * Set the new array as the TCoords in the output's point data.
> 
> Utkarsh
> 
> On Tue, Mar 16, 2010 at 6:38 AM, Dressler, Christian
> <christian.dress...@medizin.uni-leipzig.de> wrote:
>> Hi Utkarsh,
>> 
>> could you give me some hints or catchwords how to realize that filter? 
>> Perhaps a link to tutorial you recommend?
>> 
>> 
>> Best,
>> 
>> Christian
>> 
>> -----Ursprüngliche Nachricht-----
>> Von: Utkarsh Ayachit [mailto:utkarsh.ayac...@kitware.com]
>> Gesendet: Freitag, 12. März 2010 16:13
>> An: Dressler, Christian
>> Cc: paraview@paraview.org
>> Betreff: Re: [Paraview] Use existing texture map for 3D surface
>> 
>> The problem is that the uv array needs to be marked as "Texture"
>> attribute for the PointData. You can write a PythonProgrammableFilter
>> which generate an output with the Texture coords setup correctly. Let
>> me know if you need help with that. Also remember this filter will
>> have to combine the two "u" and "v" arrays produced by
>> vtkTableToPoints into a single array with 2 components.
>> 
>> Utkarsh
>> 
>> On Fri, Mar 12, 2010 at 10:05 AM, Dressler, Christian
>> <christian.dress...@medizin.uni-leipzig.de> wrote:
>>> Hi Eric,
>>> 
>>> Unfortunately this does not work. Neither for the point cloud, nor for the 
>>> surface. It does only work after generating a map by paraview, but this is 
>>> the wrong map.
>>> 
>>> I also tried to rename the columns header the way paraview does, but it did 
>>> not work. I am looking for an option similar to the "table to points 
>>> filter", where I am asked which column has which meaning.
>>> 
>>> Thanks,
>>> 
>>> Christian
>>> 
>>> 
>>> -----Ursprüngliche Nachricht-----
>>> Von: Eric E. Monson [mailto:emon...@cs.duke.edu]
>>> Gesendet: Freitag, 12. März 2010 15:54
>>> An: Dressler, Christian
>>> Cc: paraview@paraview.org
>>> Betreff: Re: [Paraview] Use existing texture map for 3D surface
>>> 
>>> Hey Christian,
>>> 
>>> If your data already has valid texture coordinates, highlight your surface 
>>> in the Pipeline Browser. You should be able to go to the Display tab of the 
>>> Object Inspector and in the Color section there is an Apply Texture combo 
>>> box that should not be grayed-out if everything is ready for texturing. If 
>>> you pull down to Load... it will let you load your texture image and you 
>>> should see it on your surface.
>>> 
>>> Let us know if you have problems,
>>> -Eric
>>> 
>>> ------------------------------------------------------
>>> Eric E Monson
>>> Duke Visualization Technology Group
>>> 
>>> 
>>> On Mar 12, 2010, at 7:51 AM, Dressler, Christian wrote:
>>> 
>>>> 
>>>> Hi,
>>>> 
>>>> I am trying to reconstruct data generated by a surface scanner with 
>>>> paraview. The data is structured as xyzuv arrays. I managed to calculate 
>>>> the surface by using the filters "Table to points" and "Delaunay 2D".
>>>> 
>>>> But I could not figure out, how to apply the texture to the surface. The 
>>>> uv-coordinates have the same format as the maps generated by the paraview 
>>>> texture filters (normalized position of bitmap).
>>>> 
>>>> How can I make paraview using my own texture map?
>>>> 
>>>> 
>>>> Best,
>>>> 
>>>> Christian
>>>> ____________________________________________
>>>> Dipl.-Ing. Christian Dressler
>>>> Research Associate  | Working Group - S-DICOM Solutions
>>>> 
>>>> Universität Leipzig | Faculty of Medicine
>>>> Innovation Center Computer Assisted Surgery (ICCAS)
>>>> Semmelweisstr. 14
>>>> D - 04103 Leipzig
>>>> Germany
>>>> 
>>>> phone  +49 (0) 341 97 - 12018
>>>> fax    +49 (0) 341 97 - 12009
>>>> christian.dress...@medizin.uni-leipzig.de
>>>> http://www.iccas.de/?id=430
>>>> ____________________________________________
>>>> 
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>> 
>>>> Visit other Kitware open-source projects at 
>>>> http://www.kitware.com/opensource/opensource.html
>>>> 
>>>> Please keep messages on-topic and check the ParaView Wiki at: 
>>>> http://paraview.org/Wiki/ParaView
>>>> 
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.paraview.org/mailman/listinfo/paraview
>>> 
>>> _______________________________________________
>>> Powered by www.kitware.com
>>> 
>>> Visit other Kitware open-source projects at 
>>> http://www.kitware.com/opensource/opensource.html
>>> 
>>> Please keep messages on-topic and check the ParaView Wiki at: 
>>> http://paraview.org/Wiki/ParaView
>>> 
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>> 
>> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the ParaView Wiki at: 
> http://paraview.org/Wiki/ParaView
> 
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to