<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hola,<br>
<br>
¿hay alguna razón para que exista tanta cantidad de clases?,
tenemos vector2d, vector2h, vector3d, vector3h, matriz3x3,
matrix3x4, etc. Todas esas clases en realidad no aportan nada, ya
que simplemente le dan otro nombre a algo que ya existe en Eigen,
y el propia Eigen te da para ellos todo lo que quieras:<br>
<br>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<a href="http://eigen.tuxfamily.org/1/classEigen_1_1Vector.html">http://eigen.tuxfamily.org/1/classEigen_1_1Vector.html</a><br>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<a href="http://eigen.tuxfamily.org/1/classEigen_1_1Matrix.html">http://eigen.tuxfamily.org/1/classEigen_1_1Matrix.html</a><br>
<br>
operaciones, normalizado, y un montón de historias más.<br>
<br>
Luego, si lo que se quiere es una librería para geometría, con
tener clases de este tipo valdría: Plane, Line2D, Line3D,
Segment2D, Segment3D, Point2D, Point3D, y que todas ellas tiren
directamente de Eigen o de las clases inferiores, es decir, los
constructores del Line2D podrían ser:<br>
<br>
Line2D(double p1x, double p1y, double p2x, double p2y);<br>
Line2D(Eigen::Vector2d p1, Eigen::Vector2d p2);<br>
Line2D(Point2D p1, Point2D p2);<br>
Line2D(double vx, double vy, double vz);<br>
Line2D(Eigen::Vector3d v);<br>
<br>
Y el Point2D sería:<br>
<br>
Point2D(double x, double y, double h=1.0);<br>
Point2D(Eigen::Vector2d p, double h=1.0);<br>
Point2D(Eigen::Vector3d p);<br>
<br>
Con eso das la opción para que acepte cualquier cosa, con H o sin
H. Por cierto, a la hora de utilizar Eigen utilizad siempre que
podáis double, ya que hay problemas con los float entre la versión
32b y 64b (ahora mismo está todo el float).<br>
<br>
Saludos.<br>
<br>
El 01/08/13 14:08, Roberto Calvo escribió:<br>
</div>
<blockquote cite="mid:1375358895.28105.21.camel@vega" type="cite">
<pre wrap="">
Alex, le he estado dando una vuelta toda esta mañana a la librería
Geometry.
Sobre el CMakeLists.txt
- He añadido cpp's que faltaban, sino fallaban las referencias cuando
compilabas contra la librería.
- He añadido también los target link a las librerías (tinyxml GLU),
sino quien use libgeometry.so las tiene que añadir y no tiene sentido.
- Faltan por añadir que avise de las dependencias (tinyxml, GLU,
eigen) y los include. Yo las he puesto a pelo en el CMakeLists pero
sería bueno que lo hiciera automáticamente con cmake.
Sobre Progeo, funciona perfecto! :-) Las pruebas al menos que tenía yo
siguen funcionando bien. He modificado la clase para que tenga 2
constructores, uno para el XML y otro para pasarle la información
directamente en matrices. Ahhh también he cambiado el define de la
cabecera que era igual que progeo1 y al estar definida no entraba en
progeo2.h
También he visto alguna otra cosa como que Matriz3x3 tiene el método
"getMatriz" y Matriz4x4 tiene el método "getMatrix". Deberíamos
unificarlo todo. Además tendríamos que usar siempre el inglés para el
código fuente.
He abierto un bug en [1] para tenerlo controlado, tenemos que dejar esta
librería lista para usar :-) Si quieres/queréis cuenta para el redmine y
poder actualizar los bugs dímelo.
Un saludo!
[1] <a class="moz-txt-link-freetext" href="http://sarastro.gsyc.es/issues/26">http://sarastro.gsyc.es/issues/26</a>
El mié, 31-07-2013 a las 17:40 +0200, Roberto Calvo escribió:
</pre>
<blockquote type="cite">
<pre wrap="">El mié, 31-07-2013 a las 17:32 +0200, Alejandro Hernández escribió:
</pre>
<blockquote type="cite">
<pre wrap="">En principio debería de ser estable, utiliza las mismas formulas
matemáticas que progeo, pero en lugar de GSL, utiliza Eigen. No la he
testeado lo suficiente para para asegurarte 100% que funciona todo
correctamente. El parseador de XML es el mismo en ambas versiones.
</pre>
</blockquote>
<pre wrap="">
Ok! Pues le voy a dedicar un rato a todo esto, y voy a integrarlo todo
con geometry.
Te cuento si veo algún problema.
</pre>
<blockquote type="cite">
<pre wrap="">
Alejandro Hernández Cordero
Visit and play my Curriculum vitae
-> <a class="moz-txt-link-freetext" href="https://googledrive.com/host/0BytBL_SySiIjX19Pd1o5dlZaRHc/Game.html">https://googledrive.com/host/0BytBL_SySiIjX19Pd1o5dlZaRHc/Game.html</a>
El 31 de julio de 2013 17:29, Roberto Calvo <a class="moz-txt-link-rfc2396E" href="mailto:rocapal@gsyc.urjc.es"><rocapal@gsyc.urjc.es></a>
escribió:
El mié, 31-07-2013 a las 15:54 +0200, Alejandro Hernández
escribió:
> Hola,
>
>
> Siéntete libre de mejorar la biblioteca, cuanto más completa
este
> mucho mejor.
>
>
> Ahora mismo utilizamos los vectores math::vector2 (o
math::vector2H en
> homogeneas), igual para el caso de puntos 3D. Estas clases
utilizan
> Eigen. Ahora mismo solo existe vector y no la clase punto.
Puedes
> crearte una clase nueva que sea punto en esencia tiene que
ser muy
> parecida a la del Vector.
Genial, pues creo que modificando la clase Segmento tendré
suficiente,
porque veo que la nueva implementación de progeo utiliza
Vector3H y
Vector2H así que no es necesario crearse una nueva clase para
punto3D
¿no crees?
int Progeo::project(math::Vector3H in, math::Vector2H &out)
Por cierto, sobre la la librería de Progeo que está dentro de
geometry
¿es estable? Es la siguiente versión de progeo ¿verdad? Se
puede
integrar sin problemas o aún está por desarrollar.
Veo que para inicializar hace falta el fichero XML ¿donde está
definido
el formato? Aún así, casi seguro que le añado un par de
métodos para
pasarle directamente las matrices de posición, K y RT para
utilizarla
directamente desd código sin tener que generar el fichero.
Ahora mismo tengo una parte del calibrador funcionando con
progeo
antigua, dime cuanto de estable es esta y ya lo paso todo para
que
utilice geometry.
Un saludo!
>
> Alejandro Hernández Cordero
>
>
>
>
>
>
> Visit and play my Curriculum vitae
> ->
<a class="moz-txt-link-freetext" href="https://googledrive.com/host/0BytBL_SySiIjX19Pd1o5dlZaRHc/Game.html">https://googledrive.com/host/0BytBL_SySiIjX19Pd1o5dlZaRHc/Game.html</a>
>
>
> El 30 de julio de 2013 16:33, Roberto Calvo
<a class="moz-txt-link-rfc2396E" href="mailto:rocapal@gsyc.urjc.es"><rocapal@gsyc.urjc.es></a>
> escribió:
>
> Hola,
>
> He desarrollado un par de métodos para trabajar con
segmentos
> en 3D
> porque no lo he encontrado en geometry. Básicamente
es para
> dado 2puntos
> 3D, obtener la recta, y luego sobre la recta hallar
puntos con
> una Z
> concreta y saber si un punto dado la contiene en esa
recta 3D.
>
> Alex, ¿como es la mejor manera de integrarlo? ¿Lo
añado dentro
> de
> Segmento? ¿Que tipo de datos usáis para representar
puntos en
> 3D, el
> HPoint3D de progeo o algún otro?
>
> Me ha dicho Edu que andáis modificándola para
unificar con
> Eigen ¿ves
> algún problema en que añada ya el código o espero?
>
> Ya me contáis.
> Un saludo!
>
>
> --
> Roberto Calvo Palomino | Robotics Lab (GSyC)
> R&D Android Mobile Engineer | Universidad Rey Juan
Carlos
>
> Twitter: @rocapal
> Linkedin: <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/rocapal">http://www.linkedin.com/in/rocapal</a>
>
>
>
--
Roberto Calvo Palomino | Robotics Lab (GSyC)
R&D Android Mobile Engineer | Universidad Rey Juan Carlos
Twitter: @rocapal
Linkedin: <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/rocapal">http://www.linkedin.com/in/rocapal</a>
</pre>
</blockquote>
<pre wrap="">
</pre>
</blockquote>
<pre wrap="">
</pre>
</blockquote>
<br>
</body>
</html>