sanyaade-g2g-repos / quimeraengine

Automatically exported from code.google.com/p/quimeraengine
0 stars 1 forks source link

QPlane Extension 001 #132

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Añade funcionalidad de diversa índole relacioanda con las normales de planos 
y cálculos con puntos.

Más información en:

http://quimeraengine.googlecode.com/files/QPlane%20Extension%20001.pdf

Original issue reported on code.google.com by Lince3D@gmail.com on 24 Mar 2011 at 12:02

GoogleCodeExporter commented 9 years ago

Original comment by jwl...@gmail.com on 5 Apr 2011 at 8:30

GoogleCodeExporter commented 9 years ago

Original comment by jwl...@gmail.com on 12 Apr 2011 at 9:26

GoogleCodeExporter commented 9 years ago
Resultado de la revisión:

1-EQIntersections: Recuerda antes de subir de usar la plantilla actualizada 
(que tiene documentación).

2-Constructor con 3 puntos: ¿Por qué se comprueba si vAux1 es cero? Habría 
que usar el método IsZero de todas formas. El método tendría que ser inline, 
o estar implementado en el CPP en caso contrario.

3-Documentación de DotProduct, parámetro v ó p: "The plane with which we 
want to calculate the dot product." = "The plane which we want to calculate the 
dot product with.".

4-Documentación de DotProductAngle: "the resident and" = "the resident plane 
and".

5-DotProductAngle: QE_ASSERT(QFloat::IsNotZero(fDotLength)); tendría que 
comprobar sólo que no sea cero, no que sea próximo a cero.

6-DotProductAngle que recibe un QBasePlane: En lugar de calcular la longitud 
del plano escribiendo la fórmula, en este caso puede convertirse en QPlane y 
llamar a GetLength.

7-Documentación de IntersectionPoint: Calcula y halla el punto, si lo hay. No 
desccribas los valores de una enumeración en el apartado results de las 
funciones, en todo caso haz una mera referencia a los posibles valores 
devueltos, pero la descripción de los mismos debe estar centralizada en la 
clase del enumerado. Tampoco es cierto que se devuelva un entero, es un 
enumerado, aunque tenga una equivalencia directa con números enteros en C++.

8-IntersectionPoint: "QFloat::IsNotZero(fDetC)" esta comparación debería ser 
contra QFloat::_0, entiendo que sólo es para comprobar la división por cero. 
El resto de comparaciones no estoy seguro de si deben o no comparar con 
tolerancia. Por otro lado, no creo que esta función deba ser inline.

9-PointProjection: "QE_ASSERT(QFloat::IsNotZero(fSquaredLength));" debe 
comparar sólo contra QFloat_::0.

10-Documentación de PointDistance: [DOC].

11-PointDistance: "QE_ASSERT(QFloat::IsNotZero(fLength));" debería comparar 
contra QFloat::_0, ya que es para comprobar la división por cero.

12-SpaceRelation: Posiblemente no lo viste en el documento al estar en otra 
página. Releyendo la descripción la cambiaría por la siguiente: Se 
devolverá si está en la cara positiva o en la negativa (es paralelo) o si 
está en ambas (intersección u ortogonal) o contenido.

Original comment by Lince3D@gmail.com on 15 Apr 2011 at 6:23

GoogleCodeExporter commented 9 years ago

Original comment by jwl...@gmail.com on 28 Apr 2011 at 8:19

GoogleCodeExporter commented 9 years ago
Resultado de la revisión: Correcta.

1-Constructor con 3 puntos: Usar IsNotZero en lugar de !IsZero.

2-En general, cuidado con nombrar variables con prefijo p-, está reservado a 
punteros. Ejemplos en IntersectionPoint, "pAux".

3-SpaceRelation: Ya que estás, podrías poner los otros 2 returns (positivo y 
contenido) sin { }.

Original comment by Lince3D@gmail.com on 30 Apr 2011 at 11:53