<div dir="ltr">Thanks, I will take into account your suggestion.<div><br></div><div>Can you run the code with those point samples and tell me what's the distance you get? I'd like to ensure it works in C++ and then figure out how to make it work in ActiViz..</div>
<div><br></div><div>Thanks,</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 14, 2014 at 8:48 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Matias,<br>
<br>
I don't use Activiz, but something about your code confuses me:<br>
In C++, Distance2BetweenPoints is overloaded for float and double:<br>
<br>
  float Distance2BetweenPoints(const float x[3], const float y[3])<br>
  double Distance2BetweenPoints(const double x[3], const double y[3])<br>
<br>
So how does Activiz know which one of these methods to call?<br>
If it passes a "double" IntPtr to the float-overloaded method, then the<br>
result is definitely going to be wrong.<br>
<br>
Also: I suggest that you include "Activiz" or "C#" in the subject line<br>
of all your emails to the list.  That will help to attract the attention of<br>
other Activis users, and they are the ones who are most likely to know<br>
the answers to questions like this one.<br>
<span class="HOEnZb"><font color="#888888"><br>
  David<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
On Tue, Jan 14, 2014 at 4:18 PM, Matias Montroull <<a href="mailto:matimontg@gmail.com">matimontg@gmail.com</a>> wrote:<br>
> Hi,<br>
><br>
> I'm running this code and I get distance "infinity"... If I change to lower<br>
> values (1 digit) then it gives a distance..<br>
> Why?<br>
><br>
>  double[] p0 = new double[] { 10.2, 20.7, 10.4 };<br>
>    double[] p1 = new double[] { 10.5, 20.5, 10.8};<br>
><br>
>    IntPtr pP0 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(double)) * 3);<br>
>    IntPtr pP1 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(double)) * 3);<br>
>    Marshal.Copy(p0, 0, pP0, 3);<br>
>    Marshal.Copy(p1, 0, pP1, 3);<br>
><br>
>    // Find the squared distance between the points.<br>
>    double squaredDistance = vtkMath.Distance2BetweenPoints(pP0, pP1);<br>
><br>
>    // Take the square root to get the Euclidean distance between the points.<br>
>    double distance = Math.Sqrt(squaredDistance);<br>
><br>
>    // Output the results.<br>
>    Console.WriteLine("SquaredDistance = " + squaredDistance);<br>
>    Console.WriteLine("Distance = " + distance);<br>
>    Marshal.FreeHGlobal(pP0);<br>
>    Marshal.FreeHGlobal(pP1);<br>
</div></div></blockquote></div><br></div>