<div dir="ltr">I am assuming that there is a way of passing numpy arrays from regular Python to Cython compiled code? If there is, you can always get access to VTK pointers as numpy arrays through the numpy interface. This would look like this:<div><br></div><div>In (C) Python:</div><div><br></div><div>Get VTK object</div><div>Get various data structures (arrays, cell arrays etc.) as numpy arrays</div><div>Call Cython code</div><div><br></div><div>In Cython</div><div><br></div><div>Do some processing</div><div>Generate new arrays</div><div>Return as numpy arrays to (C) Python</div><div><br></div><div>In (C) Python</div><div><br></div><div>Stick numpy arrays back into VTK data structures such as arrays, cell arrays etc.</div><div><br></div><div>Best,</div><div>-berk</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 18, 2016 at 2:02 PM, Nil Goyette <span dir="ltr"><<a href="mailto:nil.goyette@imeka.ca" target="_blank">nil.goyette@imeka.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hi Cory,<br>
    <br>
    Thank you for the answer. Yes, I know that vtk is coded in C++ and
    that python-vtk is only a binding. I thought that maybe there was a
    way to avoid some of the expensive calls. For example, I have this
    loop in a cython file:<br>
    <br>
    <tt><big># streamline is a ndarray of 3d points<br>
        for i in range(nb_points):<br>
            point_3d = streamline[i]<br>
            vtk_points.InsertNextPoint</big></tt><tt>(<big>point_3d</big>)</tt><br>
    <br>
    I know that InsertNextPoint is as fast as it can be, but the call
    itself is expensive. As you said, there's probably nothing to be
    done here using cython.<br>
    <br>
    Which bring me to another question! As I said above, I have a 2D
    ndarray (list of 3d points) that I need to put in a vtkPoints
    object. I think it's a waste of time to copy the data in a loop
    because both vtk and numpy represent their data the same way and
    should be able to read the data of the other library.<br>
    <br>
    I found the "VTK - numpy integration" posts this morning
    <a href="http://www.kitware.com/blog/home/post/709" target="_blank">http://www.kitware.com/blog/home/post/709</a> and I thought that maybe
    there a way to create a vtkPoints from a numpy array without a loop.
    I couldn't find how to do it though. It seems we can only create
    vtkDataSets and put them in bbtk objects. Do you know if what I want
    to do is possible?<span class="HOEnZb"><font color="#888888"><br>
    <br>
    Nil</font></span><span class=""><br>
    <br>
    <div>Le 2016-01-16 07:59, Cory Quammen a
      écrit :<br>
    </div>
    <blockquote type="cite">
      <pre>Nil,

VTK is C++ library that provides Python language bindings, so all the
VTK parts you call in your Python code are invoking compiled C++
functions. There is no need to cythonize them.

Cory

On Fri, Jan 15, 2016 at 11:30 AM, Nil Goyette <a href="mailto:nil.goyette@imeka.ca" target="_blank"><nil.goyette@imeka.ca></a> wrote:
</pre>
      <blockquote type="cite">
        <pre>Hi all,

I tried making a part of my pytthon code faster and vtk is the only part
which I can't change anything. In fact, I can't find any information on
cythonizing vtk. Maybe because one should use C++ if he wants a fast version
:) or maybe because there's simply not much information on the subject.

Is there some specific advices to vtk? Where to find the cdef?
Or it's simply the general advices like: get a pointer to the data asap to
be in C mode, then cdef everything?

Nil
</pre>
      </blockquote>
    </blockquote>
  </span></div>

<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div>