Status
Screenshots
Download
Mailing List
List Archive
Quesa Forum
Todo
Bug List
CVS Server
API Reference
Documentation
Building Quesa
LGPL License
Carbon Dating
Contributors
Quesa Logo
Links
|
|
Quesa Bugs
Quesa uses the Bugzilla bug tracking system to manage bugs and track feature requests.
The Quesa bug database can be found
here.
If you have encountered a bug in Quesa, or would like to log a feature request, please
create a new bug in the database and post a reference to it to the mailing list.
Bug List (Obsolete)
Please note this section is obsolete - these bugs have not been migrated to the
current Bugzilla system, which is now the definitive list.
| Severity | ID | Description |
| High | 00058 |
Finish Mesh implementation.
|
| Medium | 00049 |
Implement kQ3XMethodTypeCameraFrustumMatrix method for view plane cameras.
|
| Medium | 00050 |
IR doesn't support specular colour/control at the vertex level.
|
| Medium | 00051 |
IR doesn't support ambient coefficient.
|
| Medium | 00053 |
Make use of kQ3XMethodTypeRendererIsBoundingBoxVisible method for culling and support in IR.
|
| Medium | 00005 |
Storage objects can not be duplicated, and will be rejected by Q3Object_Duplicate.
|
| Medium | 00023 |
Geometries which are decomposed to TriMeshes fix the attribute data at the time of creation,
should use the use array to allow renderers to update the attribute data with the current
state to provide for inheritence.
|
| Medium | 00020 |
Implicit geometries do not support screen space subdivision: unclear how to go from screen
space back to world space?
|
| Medium | 00024 |
QD3D viewer, doesn't let you rotate around model if running with Quesa.
|
| Medium | 00031 |
Nanosaur, IR doesn't handle fog correctly
|
| Medium | 00032 |
Nanosaur, face culling is back to front?
|
| Medium | 00033 |
IR, Light Test produces white geometry
|
| Minor | 00001 |
Macintosh window draw contexts do not support clipping masks.
|
| Minor | 00002 |
Pixmap window draw contexts do not support clipping masks.
|
| Minor | 00007 |
Wireframe/Interactive renderers doesn't support segment attributes for polylines.
|
| Minor | 00008 |
Wireframe renderer doesn't support individual triangle colours for TriMeshes.
|
| Minor | 00009 |
Wireframe/Interactive renderers don't support kQ3CameraTypeViewPlane cameras.
|
| Minor | 00018 |
Cone geometry not as smooth in appearance as QD3D 1.6 implementation. This is due to the
number of vertices we produce (a QD3D cone with ~100 vertices only uses ~10 vertices under
Quesa), but should look at improving this).
|
| Minor | 00022 |
Quesa's Wireframe and Interactive renderers ignore PolyLine segment attribute sets.
|
| Minor | 00034 |
Viewer, about box button should display dialog on mouse up not mouse down.
|
| Minor | 00035 |
Import Test, storage object not being disposed of somewhere.
|
| Minor | 00036 |
Queeg, Quesa IR renders darker and flatter than QD3D IR.
|
| Minor | 00037 |
Queeg, changing window size produces different image with Quesa than with QD3D.
|
| Minor | 00039 |
Q3BoundingSphere_SetFromPoints3D and Q3BoundingSphere_SetFromRationalPoints4D return significantly incorrect results for some inputs. They are probably using an incorrect algorithm.
|
| Minor | 00046 |
Pixmap/bitmap markers are culled by OpenGL if they are partially off-screen, should be clipped.
|
| Minor | 00047 |
Wireframe renderer doesn't support pixmap/bitmap markers.
|
| Minor | 00055 |
Add error testing with glError in debug builds.
|
| Minor | 00060 |
Identify better specular control->GL_SHININESS mapping, create a test app to compare values across range.
|
| Possible | 00059 |
Add simple error/warning handlers that print to stderr/DebugStr in debug builds.
|
| Possible | 00003 |
Q3Quaternion_SetMatrix, possible bug in QD3D 1.6 implementation.
|
| Possible | 00004 |
Q3BoundingSphere_SetFromRationalPoints4D, possible bug in QD3D 1.6 implementation.
|
| Possible | 00006 |
Q3View_GetAttributeState, possible bug in QD3D 1.6 docs - correct behaviour not clear.
|
| Possible | 00010 |
Wire elements, don't support IO. Also don't copy the QTAtomContainer, although the
QD3D implementation might - docs on this element's behaviour are needed.
|
| Possible | 00011 |
Q3View_Sync does not work correctly with QD3D interactive renderer, possible bug
in QD3D 1.6 renderer.
|
| Possible | 00038 |
Duplicating geometry objects does not duplicate their attribute set data correctly
(some geometries duplicate the attribute sets, some just create new references
to the existing data).
|
| Possible | 00040 |
Q3Quaternion_SetMatrix, possible bug in QD3D 1.6 implementation.
|
| Possible | 00041 |
Q3BoundingSphere_SetFromRationalPoints4D, possible bug in QD3D 1.6 implementation.
|
| Possible | 00042 |
Q3Quaternion_SetRotateAboutAxis might be returning the conjugate of the correct result.
|
| Possible | 00043 |
The functions Q3RationalPoint3D_Distance, Q3RationalPoint3D_DistanceSquared,
Q3RationalPoint4D_Distance and Q3RationalPoint4D_DistanceSquared return incorrect results.
They should return distances between 3- and 4-dimensional rational points that are the
same as the distances between the corresponding 2- and 3-dimensional points. Note that
3D Graphics Programming With QuickDraw 3D 1.5.4 documents that these functions return
2- and 3-dimensional distances.
|
| Possible | 00044 |
Although not clearly documented in 3D Graphics Programming With QuickDraw 3D 1.5.4,
the functions Q3RationalPoint4D_RRatio, Q3RationalPoint3D_AffineComb and
Q3RationalPoint4D_AffineComb return incorrect results (when w-components are not equal to 1).
Each function should return the same result as would be obtained by converting each
input to the next lower dimension, calling calling Q3Point3D_RRatio, Q3Point2D_AffineComb
or Q3Point3D_AffineComb, and then converting the result back to the original dimension.
|
| Possible | 00045 |
Do the functions Q3Vector2D_To3D and Q3Vector3D_To2D do anything useful? Would it be
better to eliminate them in favor of Q3Vector2D_ToRationalPoint3D and Q3RationalPoint3D_ToVector2D?
|
| Possible | 00048 |
Verify all QD3D pixmap formats for Pixmap marker object, make sure they're converted correctly.
|
If you encounter problems running Quesa, please submit a patch or a bug report to the
mailing list: this is the best way to make sure it will be fixed in future versions
of the library.
Missing Functions
The following functions have been identified as missing from QD3D, and potential
candidates for including in Quesa:
TQ3RationalPoint3D *
Q3Param2D_To3D(
const TQ3Param2D *param2D,
TQ3RationalPoint3D *result);
TQ3Param2D *
Q3RationalPoint3D_ToParam2D(
const TQ3RationalPoint3D *rationalPoint3D,
TQ3Param2D *result);
TQ3RationalPoint3D *
Q3RationalPoint3D_RRatio(
const TQ3RationalPoint3D *p1,
const TQ3RationalPoint3D *p2,
float r1,
float r2,
TQ3RationalPoint4D *result);
float *
Q3Param2D_CrossProductTri(
const TQ3Param2D *p1,
const TQ3Param2D *p2,
const TQ3Param2D *p3);
TQ3Status
Q3Vector2D_To3DTransformArray(
const TQ3Vector2D *inVectors2D,
const TQ3Matrix3x3 *matrix3x3,
TQ3RationalPoint3D *outRationalPoints3D,
TQ3Uns32 numVectors,
TQ3Uns32 inStructSize,
TQ3Uns32 outStructSize);
TQ3Status
Q3Vector3D_To4DTransformArray(
const TQ3Vector3D *inVectors3D,
const TQ3Matrix4x4 *matrix4x4,
TQ3RationalPoint4D *outRationalPoints4D,
TQ3Uns32 numVectors,
TQ3Uns32 inStructSize,
TQ3Uns32 outStructSize);
TQ3Status
Q3Point2D_To3DTransformArray(
const TQ3Point2D *inPoints2D,
const TQ3Matrix3x3 *matrix3x3,
TQ3RationalPoint3D *outRationalPoints3D,
TQ3Uns32 numPoints,
TQ3Uns32 inStructSize,
TQ3Uns32 outStructSize);
TQ3PolarPoint *
Q3Param2D_ToPolar(
const TQ3Param2D *param2D,
TQ3PolarPoint *result);
TQ3Param2D *
Q3PolarPoint_ToParam2D(
const TQ3PolarPoint *polarPoint,
TQ3Param2D *result);
TQ3PolarPoint *
Q3Vector2D_ToPolar(
const TQ3Vector2D *vector2D,
TQ3PolarPoint *result);
TQ3Vector2D *
Q3PolarPoint_ToVector2D(
const TQ3PolarPoint *polarPoint,
TQ3Vector2D *result);
TQ3SphericalPoint *
Q3Vector3D_ToSpherical(
const TQ3Vector3D *vector3D,
TQ3SphericalPoint *result);
Q3Vector3D *
Q3SphericalPoint_ToVector3D(
const TQ3SphericalPoint *sphericalPoint,
TQ3Vector3D *result);
TQ3Matrix4x4 *
Q3Matrix4x4_Adjoint(
const TQ3Matrix4x4 *matrix4x4,
TQ3Matrix4x4 *result);
Documentation Errors
The following errors have been identified in Apple's "3D Graphics Programming
With QuickDraw 3D 1.5.4" book. These should be corrected for the Quesa replacement
for this documentation.
- Omission: Although undocumented, on entry to Q3Point2D_RRatio, Q3Param2D_RRatio, Q3Point3D_RRatio or Q3RationalPoint4D_RRatio, the result parameter can be the same as either p1 or p2 (or both).
- Omission: Although undocumented, on entry to Q3Point2D_Vector2D_Add, Q3Param2D_Vector2D_Add, Q3Point3D_Vector3D_Add, Q3Point2D_Vector2D_Subtract, Q3Param2D_Vector2D_Subtract or Q3Point3D_Vector3D_Subtract, the result parameter can be the same as the input point parameter.
- Omission: Although undocumented, on entry to Q3Vector3D_Cross, the result parameter can be the same as either v1 or v2 (or both).
- Omission: Although undocumented, on entry to Q3Point3D_To3DTransformArray, the outPoints3D parameter can be the same as the inPoints3D parameter.
- Omission: Although undocumented, on entry to Q3RationalPoint4D_To4DTransformArray, the outPoints4D parameter can be the same as the inPoints4D parameter.
- Omission: Although undocumented, on entry to Q3Vector2D_Negate or Q3Vector3D_Negate, the result parameter can be the same as the input vector parameter.
- Inconsistency: In Q3Point3D_To3DTransformArray and Q3Point3D_To4DTransformArray, rename inVertex to inPoints3D to match names in "QD3DMath.h".
- Inconsistency: In Q3RationalPoint4D_To4DTransformArray, rename inVertex to inPoints4D to match names in "QD3DMath.h".
- Inconsistency: In Q3Point3D_To3DTransformArray, rename outVertex to outPoints3D to match names in "QD3DMath.h".
- Inconsistency: In Q3Point3D_To4DTransformArray and Q3RationalPoint4D_To4DTransformArray, rename outVertex to outPoints4D to match names in "QD3DMath.h".
- Inconsistency: In Q3Point3D_To3DTransformArray, Q3Point3D_To4DTransformArray and Q3RationalPoint4D_To4DTransformArray, rename numVertices to numPoints to match names in "QD3DMath.h".
- Inconsistency: In Q3Point2D_AffineComb, Q3Param2D_AffineComb, Q3Point3D_AffineComb, Q3RationalPoint3D_AffineComb and Q3RationalPoint3D_AffineComb, rename nPoints to numPoints to match names in "QD3DMath.h".
- Inconsistency: In Q3BoundingBox_UnionPoint3D and Q3BoundingSphere_UnionPoint3D, rename pt3D to point3D to match names in "QD3DMath.h".
- Inconsistency: In Q3BoundingBox_UnionRationalPoint4D and Q3BoundingSphere_UnionRationalPoint4D, rename pt4D to point4D to match names in "QD3DMath.h".
- Inconsistency: In Q3BoundingBox_SetFromPoints3D and Q3BoundingSphere_SetFromPoints3D, rename pts to points3D to match names in "QD3DMath.h".
- Inconsistency: Q3BoundingBox_SetFromRationalPoints4D and Q3BoundingSphere_SetFromRationalPoints4D, rename pts to points4D to match names in "QD3DMath.h".
- Inconsistency: In Q3BoundingBox_SetFromPoints3D, Q3BoundingBox_SetFromRationalPoints4D, Q3BoundingSphere_SetFromPoints3D and Q3BoundingSphere_SetFromRationalPoints4D, rename nPts to numPoints to match names in "QD3DMath.h".
- Inaccuracy: The document warns that "the sum of the weights must be 1.0" for the functions Q3Point2D_AffineComb, Q3Param2D_AffineComb, Q3Point3D_AffineComb, Q3RationalPoint3D_AffineComb and Q3RationalPoint3D_AffineComb. In fact, the functions normalize each weight by dividing by the sum of the weights.
- Inaccuracy: The document warns that "QuickDraw 3D mathematical utilities do not automatically normalize vectors. They expect vectors to be normalized by the calling code" (p. 1162). In fact, most mathematical functions do not care if vectors are normalized. The only mathematical functions that do expect vectors to be normalized are Q3Matrix4x4_SetRotateAboutAxis, Q3Matrix4x4_SetRotateVectorToVector, Q3Quaternion_SetRotateAboutAxis and Q3Quaternion_SetRotateVectorToVector.
- Inaccuracy: The document states that the functions Q3Point2D_RRatio, Q3Param2D_RRatio, Q3Point3D_RRatio and Q3RationalPoint4D_RRatio return the point "that lies on the line segment between the points p1 and p2 and that is at a distance from the first point determined by the ratio r1/(r1+r2)." In fact, r1 and r2 are weights and these functions return the point that is at a distance from the first point determined by the ratio r2/(r1+r2).
- Clarification: In the introduction to the section on "Managing Matrices" (p. 1208), the document notes: "Any of the source or destination matrices may be the same matrix. The source matrices are unchanged, unless one of them is also specified as the destination matrix." Although this statement is correct, it should be reiterated for each function with more than one matrix parameter: Q3Matrix3x3_Copy, Q3Matrix4x4_Copy, Q3Matrix3x3_Transpose, Q3Matrix4x4_Transpose, Q3Matrix3x3_Invert, Q3Matrix4x4_Invert, Q3Matrix3x3_Adjoint, Q3Matrix3x3_Multiply and Q3Matrix4x4_Multiply.
- Misprint: In the description of Q3Quaternion_SetMatrix, the matrix parameter is described as a "4-by-by" matrix.
These items can be noted when HeaderDoc comments are added to QuesaMath.h.
|