QuesaGeometry.h


Discussion

Declares the Quesa geometry objects.

Functions


Q3Box_EmptyData


( TQ3Status ) Q3Box_EmptyData (
    TQ3BoxData *boxData
);
Discussion

Releases the memory allocated by a prior call to Q3Box_GetData.

Parameter Descriptions
boxData
A pointer to the box data allocated by Q3Box_GetData().
function result
Success or failure of the operation.

Q3Box_GetData


( TQ3Status ) Q3Box_GetData (
    TQ3GeometryObject box,
    TQ3BoxData *boxData
);
Discussion

Gets the properties of an existing box object.

Memory is allocated for the 'boxData' parameter, and Q3Box_EmptyData must be called to dispose of this memory.

Parameter Descriptions
box
A reference to a box geometry object.
boxData
Receives the box object's description.
function result
Success or failure of the operation.

Q3Box_GetFaceAttributeSet


( TQ3Status ) Q3Box_GetFaceAttributeSet (
    TQ3GeometryObject box,
    TQ3Uns32 faceIndex,
    TQ3AttributeSet *faceAttributeSet
);
Discussion

Gets the attribute set associated with a certain face of a box object.

The TQ3AttributeSet* parameter is filled with the attribute set of the face indexed with 'faceIndex' of the box geometry object. faceIndex must be between 0 and 5 (inclusive).

The reference count of the returned TQ3AttributeSet is incremented.

Parameter Descriptions
box
A reference to a box geometry object.
faceIndex
The index of the face of the box.
faceAttributeSet
Receives a reference to the attribute set of the box face, or NULL if the face does not have an attribute set.
function result
Success or failure of the operation.

Q3Box_GetMajorAxis


( TQ3Status ) Q3Box_GetMajorAxis (
    TQ3GeometryObject box,
    TQ3Vector3D *majorAxis
);
Discussion

Gets the major axis of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
majorAxis
Receives the major axis of the box.
function result
Success or failure of the operation.

Q3Box_GetMinorAxis


( TQ3Status ) Q3Box_GetMinorAxis (
    TQ3GeometryObject box,
    TQ3Vector3D *minorAxis
);
Discussion

Gets the minor axis of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
minorAxis
Receives the minor axis of the box.
function result
Success or failure of the operation.

Q3Box_GetOrientation


( TQ3Status ) Q3Box_GetOrientation (
    TQ3GeometryObject box,
    TQ3Vector3D *orientation
);
Discussion

Gets the orientation of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
orientation
Receives the orientation vector of the box.
function result
Success or failure of the operation.

Q3Box_GetOrigin


( TQ3Status ) Q3Box_GetOrigin (
    TQ3GeometryObject box,
    TQ3Point3D *origin
);
Discussion

Gets the origin of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
origin
Receives the origin of the box object.
function result
Success or failure of the operation.

Q3Box_New


( TQ3GeometryObject ) Q3Box_New (
    const TQ3BoxData *boxData
);
Discussion

Constructs a new Box geometry object.

If you pass NULL, you will get a default box with orientation (1, 0, 0), major axis (0, 1, 0), minor axis (0, 0, 1), and origin (0, 0, 0). This behavior was not present in QuickDraw 3D.

Parameter Descriptions
boxData
Instance data passed in specifying the parameters of the new box object, or NULL.
function result
A reference to the new geometry object, or NULL on failure.

Q3Box_SetData


( TQ3Status ) Q3Box_SetData (
    TQ3GeometryObject box,
    const TQ3BoxData *boxData
);
Discussion

Sets the properties of an existing box object.

Parameter Descriptions
box
A reference to a box geometry object.
boxData
A pointer to the box data to apply to the box object.
function result
Success or failure of the operation.

Q3Box_SetFaceAttributeSet


( TQ3Status ) Q3Box_SetFaceAttributeSet (
    TQ3GeometryObject box,
    TQ3Uns32 faceIndex,
    TQ3AttributeSet faceAttributeSet
);
Discussion

Sets the attribute set associated with a certain face of a box object.

This function applies the TQ3AttributeSet* parameter to the attribute set of the face indexed with faceIndex of the box geometry object. faceIndex must be between 0 and 5 (inclusive).

Parameter Descriptions
box
A reference to a box geometry object.
faceIndex
The index of the face of the box.
faceAttributeSet
An attribute set to be applied.
function result
Success or failure of the operation.

Q3Box_SetMajorAxis


( TQ3Status ) Q3Box_SetMajorAxis (
    TQ3GeometryObject box,
    const TQ3Vector3D *majorAxis
);
Discussion

Sets the major axis of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
majorAxis
The vector to which to set 'box's major axis.
function result
Success or failure of the operation.

Q3Box_SetMinorAxis


( TQ3Status ) Q3Box_SetMinorAxis (
    TQ3GeometryObject box,
    const TQ3Vector3D *minorAxis
);
Discussion

Sets the minor axis of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
minorAxis
The vector to which to set 'box's minor axis.
function result
Success or failure of the operation.

Q3Box_SetOrientation


( TQ3Status ) Q3Box_SetOrientation (
    TQ3GeometryObject box,
    const TQ3Vector3D *orientation
);
Discussion

Sets the orientation of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
orientation
The vector to which to set 'box's orientation.
function result
Success or failure of the operation.

Q3Box_SetOrigin


( TQ3Status ) Q3Box_SetOrigin (
    TQ3GeometryObject box,
    const TQ3Point3D *origin
);
Discussion

Sets the origin of a box object.

Parameter Descriptions
box
A reference to a box geometry object.
origin
The point to which to set 'box's origin.
function result
Success or failure of the operation.

Q3Box_Submit


( TQ3Status ) Q3Box_Submit (
    const TQ3BoxData *boxData,
    TQ3ViewObject view
);
Discussion

Submits a box for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
boxData
A pointer to a TQ3BoxData structure specifying the box to be drawn.
view
The view to submit the box to.
function result
Success or failure of the operation.

Q3Cone_EmptyData


( TQ3Status ) Q3Cone_EmptyData (
    TQ3ConeData *coneData
);
Discussion

Release memory allocated by Q3Cone_GetData.

Parameter Descriptions
coneData
Data describing a cone, previously obtained with Q3Cone_GetData.
function result
Success or failure of the operation.

Q3Cone_GetBottomAttributeSet


( TQ3Status ) Q3Cone_GetBottomAttributeSet (
    TQ3GeometryObject cone,
    TQ3AttributeSet *bottomAttributeSet
);
Discussion

Get the attribute set for the bottom cap of a cone object.

Parameter Descriptions
cone
The cone object.
bottomAttributeSet
Receives a reference to the bottom attribute set, or NULL.
function result
Success or failure of the operation.

Q3Cone_GetCaps


( TQ3Status ) Q3Cone_GetCaps (
    TQ3GeometryObject cone,
    TQ3EndCap *caps
);
Discussion

Get the end cap flags of a cone object.

Parameter Descriptions
cone
The cone object.
caps
Receives the end cap flags. See TQ3EndCapMasks, defined in Quesa.h, for values.
function result
Success or failure of the operation.

Q3Cone_GetData


( TQ3Status ) Q3Cone_GetData (
    TQ3GeometryObject cone,
    TQ3ConeData *coneData
);
Discussion

Get data describing a cone object.

This may allocate memory, which should be freed using Q3Cone_EmptyData.

Parameter Descriptions
cone
The cone object.
coneData
Receives data describing the cone.
function result
Success or failure of the operation.

Q3Cone_GetFaceAttributeSet


( TQ3Status ) Q3Cone_GetFaceAttributeSet (
    TQ3GeometryObject cone,
    TQ3AttributeSet *faceAttributeSet
);
Discussion

Get the attribute set for the face (as opposed to the bottom cap) of a cone.

Parameter Descriptions
cone
The cone object.
faceAttributeSet
Receives the attribute set for the face, or NULL.
function result
Success or failure of the operation.

Q3Cone_GetInteriorAttributeSet


( TQ3Status ) Q3Cone_GetInteriorAttributeSet (
    TQ3GeometryObject cone,
    TQ3AttributeSet *interiorAttributeSet
);
Discussion

Get the attribute set for the interior of a cone object.

This function is not available in QD3D.

Parameter Descriptions
cylinder
A cone object.
faceAttributeSet
Receives the attribute set for the interior, or NULL.
function result
Success or failure of the operation.

Q3Cone_GetMajorRadius


( TQ3Status ) Q3Cone_GetMajorRadius (
    TQ3GeometryObject cone,
    TQ3Vector3D *majorRadius
);
Discussion

Get the major radius vector of a cone object.

Parameter Descriptions
cone
The cone object.
majorRadius
Receives the major radius vector.
function result
Success or failure of the operation.

Q3Cone_GetMinorRadius


( TQ3Status ) Q3Cone_GetMinorRadius (
    TQ3GeometryObject cone,
    TQ3Vector3D *minorRadius
);
Discussion

Get the minor radius vector of a cone object.

Parameter Descriptions
cone
The cone object.
minorRadius
Receives the minor radius vector.
function result
Success or failure of the operation.

Q3Cone_GetOrientation


( TQ3Status ) Q3Cone_GetOrientation (
    TQ3GeometryObject cone,
    TQ3Vector3D *orientation
);
Discussion

Get the orientation vector of a cone object.

Parameter Descriptions
cone
The cone object.
orientation
Receives the orientation vector.
function result
Success or failure of the operation.

Q3Cone_GetOrigin


( TQ3Status ) Q3Cone_GetOrigin (
    TQ3GeometryObject cone,
    TQ3Point3D *origin
);
Discussion

Get the origin of a cone object.

Parameter Descriptions
cone
The cone object.
origin
Receives the origin.
function result
Success or failure of the operation.

Q3Cone_New


( TQ3GeometryObject ) Q3Cone_New (
    const TQ3ConeData *coneData
);
Discussion

Create a cone geometry object.

If you pass NULL, you will get a default cone with orientation (1, 0, 0), major axis (0, 1, 0), minor axis (0, 0, 1), and origin (0, 0, 0). This behavior was not present in QuickDraw 3D.

Parameter Descriptions
coneData
Pointer to data describing the cone, or NULL.
function result
The new cone object, or NULL on failure.

Q3Cone_SetBottomAttributeSet


( TQ3Status ) Q3Cone_SetBottomAttributeSet (
    TQ3GeometryObject cone,
    TQ3AttributeSet bottomAttributeSet
);
Discussion

Change the bottom attribute set of a cone object.

Naturally, this only makes sense if the cone has a bottom end cap.

Parameter Descriptions
cone
The cone object.
bottomAttributeSet
New bottom attribute set. May be NULL.
function result
Success or failure of the operation.

Q3Cone_SetCaps


( TQ3Status ) Q3Cone_SetCaps (
    TQ3GeometryObject cone,
    TQ3EndCap caps
);
Discussion

Set the end cap flags of a cone object.

Currently, this simply determines whether the cone will have a bottom cap.

Parameter Descriptions
cone
The cone object.
caps
End cap value (do not include kQ3EndCapMaskTop).
function result
Success or failure of the operation.

Q3Cone_SetData


( TQ3Status ) Q3Cone_SetData (
    TQ3GeometryObject cone,
    const TQ3ConeData *coneData
);
Discussion

Modify a cone object by supplying new data.

Parameter Descriptions
cone
The cone object.
coneData
Pointer to data describing a cone.
function result
Success or failure of the operation.

Q3Cone_SetFaceAttributeSet


( TQ3Status ) Q3Cone_SetFaceAttributeSet (
    TQ3GeometryObject cone,
    TQ3AttributeSet faceAttributeSet
);
Discussion

Set the attribute set for the face (as opposed to the bottom cap) of a cone.

Parameter Descriptions
cone
The cone object.
faceAttributeSet
New face attribute set. May be NULL.
function result
Success or failure of the operation.

Q3Cone_SetInteriorAttributeSet


( TQ3Status ) Q3Cone_SetInteriorAttributeSet (
    TQ3GeometryObject cone,
    TQ3AttributeSet interiorAttributeSet
);
Discussion

Set the attribute set for the interior of a cone object.

This function is not available in QD3D.

Parameter Descriptions
cylinder
A cone object.
faceAttributeSet
New attribute set for the interior of the cone.
function result
Success or failure of the operation.

Q3Cone_SetMajorRadius


( TQ3Status ) Q3Cone_SetMajorRadius (
    TQ3GeometryObject cone,
    const TQ3Vector3D *majorRadius
);
Discussion

Change the major radius vector of a cone object.

Parameter Descriptions
cone
The cone object.
majorRadius
New major radius vector.
function result
Success or failure of the operation.

Q3Cone_SetMinorRadius


( TQ3Status ) Q3Cone_SetMinorRadius (
    TQ3GeometryObject cone,
    const TQ3Vector3D *minorRadius
);
Discussion

Change the minor radius vector of a cone object.

Parameter Descriptions
cone
The cone object.
minorRadius
New minor radius vector.
function result
Success or failure of the operation.

Q3Cone_SetOrientation


( TQ3Status ) Q3Cone_SetOrientation (
    TQ3GeometryObject cone,
    const TQ3Vector3D *orientation
);
Discussion

Change the orientation vector of a cone object.

Parameter Descriptions
cone
The cone object.
orientation
The new orientation vector.
function result
Success or failure of the operation.

Q3Cone_SetOrigin


( TQ3Status ) Q3Cone_SetOrigin (
    TQ3GeometryObject cone,
    const TQ3Point3D *origin
);
Discussion

Change the origin of a cone object.

Parameter Descriptions
cone
The cone object.
origin
The new origin.
function result
Success or failure of the operation.

Q3Cone_Submit


( TQ3Status ) Q3Cone_Submit (
    const TQ3ConeData *coneData,
    TQ3ViewObject view
);
Discussion

Submits a cone in immediate mode for rendering, bounding, picking, or writing.

This function should only be called in a submitting loop.

Parameter Descriptions
coneData
Pointer to data describing a cone.
view
A view object.
function result
Success or failure of the operation.

Q3Cylinder_EmptyData


( TQ3Status ) Q3Cylinder_EmptyData (
    TQ3CylinderData *cylinderData
);
Discussion

Free memory allocated by Q3Cylinder_GetData.

Parameter Descriptions
cylinderData
Cylinder data previously obtained using Q3Cylinder_GetData.
function result
Success or failure of the operation.

Q3Cylinder_GetBottomAttributeSet


( TQ3Status ) Q3Cylinder_GetBottomAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet *bottomAttributeSet
);
Discussion

Get the attribute set for the bottom cap of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
bottomAttributeSet
Receives the attribute set for the bottom cap, or NULL.
function result
Success or failure of the operation.

Q3Cylinder_GetCaps


( TQ3Status ) Q3Cylinder_GetCaps (
    TQ3GeometryObject cylinder,
    TQ3EndCap *caps
);
Discussion

Get the cap flags of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
caps
Receives the end cap flags. See TQ3EndCapMasks, defined in Quesa.h, for values.
function result
Success or failure of the operation.

Q3Cylinder_GetData


( TQ3Status ) Q3Cylinder_GetData (
    TQ3GeometryObject cylinder,
    TQ3CylinderData *cylinderData
);
Discussion

Get data describing a cylinder.

This operation may allocate memory, which should be freed using Q3Cylinder_EmptyData.

Parameter Descriptions
cylinder
A cylinder object.
cylinderData
Receives data describing the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_GetFaceAttributeSet


( TQ3Status ) Q3Cylinder_GetFaceAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet *faceAttributeSet
);
Discussion

Get the attribute set for the face of a cylinder object (i.e., neither end).

Parameter Descriptions
cylinder
A cylinder object.
faceAttributeSet
Receives the attribute set for the face, or NULL.
function result
Success or failure of the operation.

Q3Cylinder_GetInteriorAttributeSet


( TQ3Status ) Q3Cylinder_GetInteriorAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet *interiorAttributeSet
);
Discussion

Get the attribute set for the interior of a cylinder object.

This function is not available in QD3D.

Parameter Descriptions
cylinder
A cylinder object.
faceAttributeSet
Receives the attribute set for the interior, or NULL.
function result
Success or failure of the operation.

Q3Cylinder_GetMajorRadius


( TQ3Status ) Q3Cylinder_GetMajorRadius (
    TQ3GeometryObject cylinder,
    TQ3Vector3D *majorRadius
);
Discussion

Get the major radius vector of a cylinder.

Parameter Descriptions
cylinder
A cylinder object.
majorRadius
Receives the major radius vector of the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_GetMinorRadius


( TQ3Status ) Q3Cylinder_GetMinorRadius (
    TQ3GeometryObject cylinder,
    TQ3Vector3D *minorRadius
);
Discussion

Get the minor radius vector of a cylinder.

Parameter Descriptions
cylinder
A cylinder object.
minorRadius
Receives the minor radius vector of the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_GetOrientation


( TQ3Status ) Q3Cylinder_GetOrientation (
    TQ3GeometryObject cylinder,
    TQ3Vector3D *orientation
);
Discussion

Get the orientation vector of a cylinder.

Parameter Descriptions
cylinder
A cylinder object.
orientation
Receives the orientation vector of the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_GetOrigin


( TQ3Status ) Q3Cylinder_GetOrigin (
    TQ3GeometryObject cylinder,
    TQ3Point3D *origin
);
Discussion

Get the origin of a cylinder.

Parameter Descriptions
cylinder
A cylinder object.
origin
Receives the origin of the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_GetTopAttributeSet


( TQ3Status ) Q3Cylinder_GetTopAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet *topAttributeSet
);
Discussion

Get the attribute set for the top cap of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
topAttributeSet
Receives the attribute set for the top cap, or NULL.
function result
Success or failure of the operation.

Q3Cylinder_New


( TQ3GeometryObject ) Q3Cylinder_New (
    const TQ3CylinderData *cylinderData
);
Discussion

Create a new Cylinder object.

If you pass NULL, you will get a default cylinder with orientation (1, 0, 0), major axis (0, 1, 0), minor axis (0, 0, 1), origin (0, 0, 0), and no end caps. This behavior was not present in QuickDraw 3D.

Parameter Descriptions
cylinderData
Data describing a cylinder, or NULL.
function result
Reference to a new Cylinder geometry object, or NULL on failure.

Q3Cylinder_SetBottomAttributeSet


( TQ3Status ) Q3Cylinder_SetBottomAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet bottomAttributeSet
);
Discussion

Set the attribute set for the bottom cap of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
bottomAttributeSet
New attribute set for the bottom cap.
function result
Success or failure of the operation.

Q3Cylinder_SetCaps


( TQ3Status ) Q3Cylinder_SetCaps (
    TQ3GeometryObject cylinder,
    TQ3EndCap caps
);
Discussion

Set the cap flags of a cylinder object. This determines whether the cylinder is closed off at one end or the other. The end containing the origin is considered the bottom.

Parameter Descriptions
cylinder
A cylinder object.
caps
The end cap flags. See TQ3EndCapMasks, defined in Quesa.h, for values.
function result
Success or failure of the operation.

Q3Cylinder_SetData


( TQ3Status ) Q3Cylinder_SetData (
    TQ3GeometryObject cylinder,
    const TQ3CylinderData *cylinderData
);
Discussion

Modify a cylinder object by supplying all new data.

Parameter Descriptions
cylinder
A cylinder object.
cylinderData
Data describing a cylinder.
function result
Success or failure of the operation.

Q3Cylinder_SetFaceAttributeSet


( TQ3Status ) Q3Cylinder_SetFaceAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet faceAttributeSet
);
Discussion

Set the attribute set for the face of a cylinder object (i.e., neither end).

Parameter Descriptions
cylinder
A cylinder object.
faceAttributeSet
New attribute set for the face of the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_SetInteriorAttributeSet


( TQ3Status ) Q3Cylinder_SetInteriorAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet interiorAttributeSet
);
Discussion

Set the attribute set for the interior of a cylinder object (which only shows when the u parameter does not have the full range 0 to 1).

This function is not available in QD3D.

Parameter Descriptions
cylinder
A cylinder object.
faceAttributeSet
New attribute set for the interior of the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_SetMajorRadius


( TQ3Status ) Q3Cylinder_SetMajorRadius (
    TQ3GeometryObject cylinder,
    const TQ3Vector3D *majorRadius
);
Discussion

Change the major radius vector of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
majorRadius
New major radius vector for the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_SetMinorRadius


( TQ3Status ) Q3Cylinder_SetMinorRadius (
    TQ3GeometryObject cylinder,
    const TQ3Vector3D *minorRadius
);
Discussion

Change the minor radius vector of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
minorRadius
New minor radius vector for the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_SetOrientation


( TQ3Status ) Q3Cylinder_SetOrientation (
    TQ3GeometryObject cylinder,
    const TQ3Vector3D *orientation
);
Discussion

Change the orientation vector of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
orientation
New orientation vector for the cylinder.
function result
Success or failure of the operation.

Q3Cylinder_SetOrigin


( TQ3Status ) Q3Cylinder_SetOrigin (
    TQ3GeometryObject cylinder,
    const TQ3Point3D *origin
);
Discussion

Change the origin of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
origin
New point of origin.
function result
Success or failure of the operation.

Q3Cylinder_SetTopAttributeSet


( TQ3Status ) Q3Cylinder_SetTopAttributeSet (
    TQ3GeometryObject cylinder,
    TQ3AttributeSet topAttributeSet
);
Discussion

Set the attribute set for the top cap of a cylinder object.

Parameter Descriptions
cylinder
A cylinder object.
topAttributeSet
New attribute set for the top cap.
function result
Success or failure of the operation.

Q3Cylinder_Submit


( TQ3Status ) Q3Cylinder_Submit (
    const TQ3CylinderData *cylinderData,
    TQ3ViewObject view
);
Discussion

Submits a cylinder for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
cylinderData
Data describing a cylinder.
view
A view object.
function result
Success or failure of the operation.

Q3Disk_EmptyData


( TQ3Status ) Q3Disk_EmptyData (
    TQ3DiskData *diskData
);
Discussion

Free memory allocated by Q3Disk_GetData.

Parameter Descriptions
diskData
Data describing a disk object, previously obtained by Q3Disk_GetData.
function result
Success or failure of the operation.

Q3Disk_GetData


( TQ3Status ) Q3Disk_GetData (
    TQ3GeometryObject disk,
    TQ3DiskData *diskData
);
Discussion

Get the data of a Disk object.

This may allocate memory, which should be freed using Q3Disk_EmptyData.

Parameter Descriptions
disk
A disk geometry object.
diskData
Data describing a disk object.
function result
Success or failure of the operation.

Q3Disk_GetMajorRadius


( TQ3Status ) Q3Disk_GetMajorRadius (
    TQ3GeometryObject disk,
    TQ3Vector3D *majorRadius
);
Discussion

Get the major radius vector of a disk object.

Parameter Descriptions
disk
A disk geometry object.
majorRadius
Receives the major radius vector of the disk.
function result
Success or failure of the operation.

Q3Disk_GetMinorRadius


( TQ3Status ) Q3Disk_GetMinorRadius (
    TQ3GeometryObject disk,
    TQ3Vector3D *minorRadius
);
Discussion

Get the minor radius vector of a disk object.

Parameter Descriptions
disk
A disk geometry object.
minorRadius
Receives the minor radius vector of the disk.
function result
Success or failure of the operation.

Q3Disk_GetOrigin


( TQ3Status ) Q3Disk_GetOrigin (
    TQ3GeometryObject disk,
    TQ3Point3D *origin
);
Discussion

Get the origin of a disk object.

Parameter Descriptions
disk
A disk geometry object.
origin
Receives the origin of the disk.
function result
Success or failure of the operation.

Q3Disk_New


( TQ3GeometryObject ) Q3Disk_New (
    const TQ3DiskData *diskData
);
Discussion

Create a new disk object.

If you pass NULL instead of a data pointer, you will get a default disk, with origin (0, 0, 0), major radius (1, 0, 0), and minor radius (0, 1, 0). This behavior was not present in QuickDraw 3D.

Parameter Descriptions
diskData
Data describing a disk object, or NULL.
function result
Reference to a new Disk geometry object, or NULL on failure.

Q3Disk_SetData


( TQ3Status ) Q3Disk_SetData (
    TQ3GeometryObject disk,
    const TQ3DiskData *diskData
);
Discussion

Modify a disk object by supplying a whole new set of data.

Parameter Descriptions
disk
A disk geometry object.
diskData
Data describing a disk object.
function result
Success or failure of the operation.

Q3Disk_SetMajorRadius


( TQ3Status ) Q3Disk_SetMajorRadius (
    TQ3GeometryObject disk,
    const TQ3Vector3D *majorRadius
);
Discussion

Change the major radius vector of a disk object.

Parameter Descriptions
disk
A disk geometry object.
majorRadius
New major radius vector for the disk object.
function result
Success or failure of the operation.

Q3Disk_SetMinorRadius


( TQ3Status ) Q3Disk_SetMinorRadius (
    TQ3GeometryObject disk,
    const TQ3Vector3D *minorRadius
);
Discussion

Change the minor radius vector of a disk object.

Parameter Descriptions
disk
A disk geometry object.
minorRadius
New minor radius vector for the disk object.
function result
Success or failure of the operation.

Q3Disk_SetOrigin


( TQ3Status ) Q3Disk_SetOrigin (
    TQ3GeometryObject disk,
    const TQ3Point3D *origin
);
Discussion

Change the origin of a Disk object.

Parameter Descriptions
disk
A disk geometry object.
origin
New origin for the disk.
function result
Success or failure of the operation.

Q3Disk_Submit


( TQ3Status ) Q3Disk_Submit (
    const TQ3DiskData *diskData,
    TQ3ViewObject view
);
Discussion

Submits a disk for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
diskData
Data describing a disk object.
view
A view object.
function result
Success or failure of the operation.

Q3Ellipse_EmptyData


( TQ3Status ) Q3Ellipse_EmptyData (
    TQ3EllipseData *ellipseData
);
Discussion

Release memory allocated by Q3Ellipse_GetData.

Parameter Descriptions
ellipseData
Data describing an ellipse, previously obtained with Q3Ellipse_GetData.
function result
Success or failure of the operation.

Q3Ellipse_GetData


( TQ3Status ) Q3Ellipse_GetData (
    TQ3GeometryObject ellipse,
    TQ3EllipseData *ellipseData
);
Discussion

Get the data of an Ellipse object.

This function may allocate memory, which should be freed using Q3Ellipse_EmptyData.

Parameter Descriptions
ellipse
An ellipse object.
ellipseData
Receives data describing the ellipse object.
function result
Success or failure of the operation.

Q3Ellipse_GetMajorRadius


( TQ3Status ) Q3Ellipse_GetMajorRadius (
    TQ3GeometryObject ellipse,
    TQ3Vector3D *majorRadius
);
Discussion

Get the major radius vector of an Ellipse object.

Parameter Descriptions
ellipse
The Ellipse object.
majorRadius
Receives the major radius vector.
function result
Success or failure of the operation.

Q3Ellipse_GetMinorRadius


( TQ3Status ) Q3Ellipse_GetMinorRadius (
    TQ3GeometryObject ellipse,
    TQ3Vector3D *minorRadius
);
Discussion

Get the minor radius vector of an Ellipse object.

Parameter Descriptions
ellipse
The Ellipse object.
minorRadius
Receives the minor radius vector.
function result
Success or failure of the operation.

Q3Ellipse_GetOrigin


( TQ3Status ) Q3Ellipse_GetOrigin (
    TQ3GeometryObject ellipse,
    TQ3Point3D *origin
);
Discussion

Get the origin of an Ellipse object.

Parameter Descriptions
ellipse
The Ellipse object.
origin
Receives the origin.
function result
Success or failure of the operation.

Q3Ellipse_New


( TQ3GeometryObject ) Q3Ellipse_New (
    const TQ3EllipseData *ellipseData
);
Discussion

Create a new ellipse geometry object.

If you pass NULL, you will get a default ellipse with major axis (0, 1, 0), minor axis (0, 0, 1), and origin (0, 0, 0). This behavior was not present in QuickDraw 3D.

Parameter Descriptions
ellipseData
Data describing an ellipse, or NULL.
function result
Reference to a new Ellipse geometry object, or NULL on failure.

Q3Ellipse_SetData


( TQ3Status ) Q3Ellipse_SetData (
    TQ3GeometryObject ellipse,
    const TQ3EllipseData *ellipseData
);
Discussion

Modify an ellipse object by supplying a full new set of data.

Parameter Descriptions
ellipse
An ellipse object.
ellipseData
Data describing an ellipse.
function result
Success or failure of the operation.

Q3Ellipse_SetMajorRadius


( TQ3Status ) Q3Ellipse_SetMajorRadius (
    TQ3GeometryObject ellipse,
    const TQ3Vector3D *majorRadius
);
Discussion

Change the major radius vector of an Ellipse object.

Parameter Descriptions
ellipse
The Ellipse object.
majorRadius
New major radius vector.
function result
Success or failure of the operation.

Q3Ellipse_SetMinorRadius


( TQ3Status ) Q3Ellipse_SetMinorRadius (
    TQ3GeometryObject ellipse,
    const TQ3Vector3D *minorRadius
);
Discussion

Change the minor radius vector of an Ellipse object.

Parameter Descriptions
ellipse
The Ellipse object.
minorRadius
New minor radius vector.
function result
Success or failure of the operation.

Q3Ellipse_SetOrigin


( TQ3Status ) Q3Ellipse_SetOrigin (
    TQ3GeometryObject ellipse,
    const TQ3Point3D *origin
);
Discussion

Change the origin of an ellipse object.

Parameter Descriptions
ellipse
The ellipse object.
origin
The new origin.
function result
Success or failure of the operation.

Q3Ellipse_Submit


( TQ3Status ) Q3Ellipse_Submit (
    const TQ3EllipseData *ellipseData,
    TQ3ViewObject view
);
Discussion

Submits an ellipse for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
ellipseData
Data describing an ellipse.
view
A view object.
function result
Success or failure of the operation.

Q3Ellipsoid_EmptyData


( TQ3Status ) Q3Ellipsoid_EmptyData (
    TQ3EllipsoidData *ellipsoidData
);
Discussion

Release memory allocated by Q3Ellipsoid_GetData.

Parameter Descriptions
ellipsoidData
Data describing an Ellipsoid, previously obtained with Q3Ellipsoid_GetData.
function result
Success or failure of the operation.

Q3Ellipsoid_GetData


( TQ3Status ) Q3Ellipsoid_GetData (
    TQ3GeometryObject ellipsoid,
    TQ3EllipsoidData *ellipsoidData
);
Discussion

Get the data of an Ellipse object.

This function may allocate memory, which should be freed using Q3Ellipsoid_EmptyData.

Parameter Descriptions
ellipsoid
An ellipsoid object.
ellipsoidData
Receives data describing the ellipsoid object.
function result
Success or failure of the operation.

Q3Ellipsoid_GetMajorRadius


( TQ3Status ) Q3Ellipsoid_GetMajorRadius (
    TQ3GeometryObject ellipsoid,
    TQ3Vector3D *majorRadius
);
Discussion

Get the major radius vector of an Ellipsoid object.

Parameter Descriptions
ellipsoid
The Ellipsoid object.
majorRadius
Receives the major radius vector.
function result
Success or failure of the operation.

Q3Ellipsoid_GetMinorRadius


( TQ3Status ) Q3Ellipsoid_GetMinorRadius (
    TQ3GeometryObject ellipsoid,
    TQ3Vector3D *minorRadius
);
Discussion

Get the minor radius vector of an Ellipsoid object.

Parameter Descriptions
ellipsoid
The Ellipsoid object.
minorRadius
Receives the minor radius vector.
function result
Success or failure of the operation.

Q3Ellipsoid_GetOrientation


( TQ3Status ) Q3Ellipsoid_GetOrientation (
    TQ3GeometryObject ellipsoid,
    TQ3Vector3D *orientation
);
Discussion

Get the orientation vector of an Ellipsoid.

Parameter Descriptions
ellipsoid
An Ellipsoid object.
orientation
Receives the orientation vector of the Ellipsoid.
function result
Success or failure of the operation.

Q3Ellipsoid_GetOrigin


( TQ3Status ) Q3Ellipsoid_GetOrigin (
    TQ3GeometryObject ellipsoid,
    TQ3Point3D *origin
);
Discussion

Get the origin of an Ellipsoid object.

Parameter Descriptions
ellipsoid
The Ellipsoid object.
origin
Receives the origin.
function result
Success or failure of the operation.

Q3Ellipsoid_New


( TQ3GeometryObject ) Q3Ellipsoid_New (
    const TQ3EllipsoidData *ellipsoidData
);
Discussion

Create a new ellipsoid geometry object.

If you pass NULL, you will get a default ellipsoid with orientation (1, 0, 0), major axis (0, 1, 0), minor axis (0, 0, 1), and origin (0, 0, 0). This behavior was not present in QuickDraw 3D.

Parameter Descriptions
ellipsoidData
Data describing an ellipsoid, or NULL.
function result
Reference to a new Ellipsoid geometry object, or NULL on failure.

Q3Ellipsoid_SetData


( TQ3Status ) Q3Ellipsoid_SetData (
    TQ3GeometryObject ellipsoid,
    const TQ3EllipsoidData *ellipsoidData
);
Discussion

Modify an ellipsoid object by supplying a full new set of data.

Parameter Descriptions
ellipsoid
An ellipsoid object.
ellipsoidData
Data describing an ellipsoid.
function result
Success or failure of the operation.

Q3Ellipsoid_SetMajorRadius


( TQ3Status ) Q3Ellipsoid_SetMajorRadius (
    TQ3GeometryObject ellipsoid,
    const TQ3Vector3D *majorRadius
);
Discussion

Change the major radius vector of an Ellipsoid object.

Parameter Descriptions
ellipsoid
The Ellipsoid object.
majorRadius
New major radius vector.
function result
Success or failure of the operation.

Q3Ellipsoid_SetMinorRadius


( TQ3Status ) Q3Ellipsoid_SetMinorRadius (
    TQ3GeometryObject ellipsoid,
    const TQ3Vector3D *minorRadius
);
Discussion

Change the minor radius vector of an Ellipsoid object.

Parameter Descriptions
ellipsoid
The Ellipsoid object.
minorRadius
New minor radius vector.
function result
Success or failure of the operation.

Q3Ellipsoid_SetOrientation


( TQ3Status ) Q3Ellipsoid_SetOrientation (
    TQ3GeometryObject ellipsoid,
    const TQ3Vector3D *orientation
);
Discussion

Change the orientation vector of an Ellipsoid object.

Parameter Descriptions
ellipsoid
An Ellipsoid object.
orientation
New orientation vector for the Ellipsoid.
function result
Success or failure of the operation.

Q3Ellipsoid_SetOrigin


( TQ3Status ) Q3Ellipsoid_SetOrigin (
    TQ3GeometryObject ellipsoid,
    const TQ3Point3D *origin
);
Discussion

Change the origin of an ellipsoid object.

Parameter Descriptions
ellipsoid
The ellipsoid object.
origin
The new origin.
function result
Success or failure of the operation.

Q3Ellipsoid_Submit


( TQ3Status ) Q3Ellipsoid_Submit (
    const TQ3EllipsoidData *ellipsoidData,
    TQ3ViewObject view
);
Discussion

Submits an ellipsoid for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
ellipsoidData
Data describing an ellipsoid.
view
A view object.
function result
Success or failure of the operation.

Q3ForEachComponentEdge


#define Q3ForEachComponentEdge(_c, _e, _i)                  \
  for ((_e) = Q3Mesh_FirstComponentEdge((_c), (_i)); \
  (_e) != NULL; \
  (_e) = Q3Mesh_NextComponentEdge((_i)))

Discussion

Macro to aid in iterating over edges of a component of a Mesh object.

Parameter Descriptions
_c
The component.
_e
The edge.
_i
Address of a TQ3MeshIterator.

Q3ForEachComponentVertex


#define Q3ForEachComponentVertex(_c, _v, _i)                \
  for ((_v) = Q3Mesh_FirstComponentVertex((_c), (_i));\
  (_v) != NULL; \
  (_v) = Q3Mesh_NextComponentVertex((_i)))

Discussion

Macro to aid in iterating over vertices of a component of a Mesh object.

Parameter Descriptions
_c
The component.
_v
The vertex.
_i
Address of a TQ3MeshIterator.

Q3ForEachContourEdge


#define Q3ForEachContourEdge(_h, _e, _i)                    \
  for ((_e) = Q3Mesh_FirstContourEdge((_h), (_i)); \
  (_e) != NULL; \
  (_e) = Q3Mesh_NextContourEdge((_i)))

Discussion

Macro to aid in iterating over edges of a contour of a Mesh object.

Parameter Descriptions
_h
The contour.
_e
An edge of the contour.
_i
Address of a TQ3MeshIterator.

Q3ForEachContourFace


#define Q3ForEachContourFace(_h, _f, _i)                    \
  for ((_f) = Q3Mesh_FirstContourFace((_h), (_i)); \
  (_f) != NULL; \
  (_f) = Q3Mesh_NextContourFace((_i)))

Discussion

Macro to aid in iterating over edges of a contour of a Mesh object.

Parameter Descriptions
_h
The contour.
_v
An edge of the contour.
_i
Address of a TQ3MeshIterator.

Q3ForEachContourVertex


#define Q3ForEachContourVertex(_h, _v, _i)                  \
  for ((_v) = Q3Mesh_FirstContourVertex((_h), (_i)); \
  (_v) != NULL; \
  (_v) = Q3Mesh_NextContourVertex((_i)))

Discussion

Macro to aid in iterating over vertices of a contour of a Mesh object.

Parameter Descriptions
_h
The contour.
_v
A vertex of the contour.
_i
Address of a TQ3MeshIterator.

Q3ForEachFaceContour


#define Q3ForEachFaceContour(_f, _h, _i)                    \
  for ((_h) = Q3Mesh_FirstFaceContour((_f), (_i)); \
  (_h) != NULL; \
  (_h) = Q3Mesh_NextFaceContour((_i)))

Discussion

Macro to aid in iterating over contours of a face of a Mesh object.

Parameter Descriptions
_f
The face.
_h
A contour of the face.
_i
Address of a TQ3MeshIterator.

Q3ForEachFaceEdge


#define Q3ForEachFaceEdge(_f, _e, _i)                       \
  for ((_e) = Q3Mesh_FirstFaceEdge((_f), (_i)); \
  (_e) != NULL; \
  (_e) = Q3Mesh_NextFaceEdge((_i)))

Discussion

Macro to aid in iterating over edges incident to a face of a Mesh object.

Parameter Descriptions
_f
The face.
_e
An incident edge.
_i
Address of a TQ3MeshIterator.

Q3ForEachFaceFace


#define Q3ForEachFaceFace(_f, _n, _i)                       \
  for ((_n) = Q3Mesh_FirstFaceFace((_f), (_i)); \
  (_n) != NULL; \
  (_n) = Q3Mesh_NextFaceFace((_i)))

Discussion

Macro to aid in iterating over faces adjacent to a face of a Mesh object.

Parameter Descriptions
_f
The face.
_n
An incident face.
_i
Address of a TQ3MeshIterator.

Q3ForEachFaceVertex


#define Q3ForEachFaceVertex(_f, _v, _i)                     \
  for ((_v) = Q3Mesh_FirstFaceVertex((_f), (_i)); \
  (_v) != NULL; \
  (_v) = Q3Mesh_NextFaceVertex((_i)))

Discussion

Macro to aid in iterating over vertices incident to a face of a Mesh object.

Parameter Descriptions
_f
The face.
_v
An incident vertex.
_i
Address of a TQ3MeshIterator.

Q3ForEachMeshComponent


#define Q3ForEachMeshComponent(_m, _c, _i)                  \
  for ((_c) = Q3Mesh_FirstMeshComponent((_m), (_i)); \
  (_c) != NULL; \
  (_c) = Q3Mesh_NextMeshComponent((_i)))

Discussion

Macro to aid in iterating over components of a Mesh object. Example:


TQ3MeshIterator		iter;
TQ3MeshComponent	comp;
Q3ForEachMeshComponent( myMesh, comp, &iter )
{
 	DoSomething( comp );
}

Parameter Descriptions
_m
The mesh object.
_c
The component.
_i
Address of a TQ3MeshIterator.

Q3ForEachMeshEdge


#define Q3ForEachMeshEdge(_m, _e, _i)                       \
  for ((_e) = Q3Mesh_FirstMeshEdge((_m), (_i)); \
  (_e) != NULL; \
  (_e) = Q3Mesh_NextMeshEdge((_i)))

Discussion

Macro to aid in iterating over edges of a Mesh object.

Parameter Descriptions
_m
The mesh.
_e
The edge.
_i
Address of a TQ3MeshIterator.

Q3ForEachMeshFace


#define Q3ForEachMeshFace(_m, _f, _i)                       \
  for ((_f) = Q3Mesh_FirstMeshFace((_m), (_i)); \
  (_f) != NULL; \
  (_f) = Q3Mesh_NextMeshFace((_i)))

Discussion

Macro to aid in iterating over faces of a Mesh object.

Parameter Descriptions
_m
The mesh.
_f
The face.
_i
Address of a TQ3MeshIterator.

Q3ForEachMeshVertex


#define Q3ForEachMeshVertex(_m, _v, _i)                     \
  for ((_v) = Q3Mesh_FirstMeshVertex((_m), (_i)); \
  (_v) != NULL; \
  (_v) = Q3Mesh_NextMeshVertex((_i)))

Discussion

Macro to aid in iterating over vertices of a Mesh object.

Parameter Descriptions
_m
The mesh.
_v
The vertex.
_i
Address of a TQ3MeshIterator.

Q3ForEachVertexEdge


#define Q3ForEachVertexEdge(_v, _e, _i)                     \
  for ((_e) = Q3Mesh_FirstVertexEdge((_v), (_i)); \
  (_e) != NULL; \
  (_e) = Q3Mesh_NextVertexEdge((_i)))

Discussion

Macro to aid in iterating over edges incident to a vertex of a Mesh object.

Parameter Descriptions
_v
The vertex.
_e
The edge.
_i
Address of a TQ3MeshIterator.

Q3ForEachVertexFace


#define Q3ForEachVertexFace(_v, _f, _i)                     \
  for ((_f) = Q3Mesh_FirstVertexFace((_v), (_i)); \
  (_f) != NULL; \
  (_f) = Q3Mesh_NextVertexFace((_i)))

Discussion

Macro to aid in iterating over faces incident to a vertex of a Mesh object.

Parameter Descriptions
_v
The vertex.
_f
An incident face.
_i
Address of a TQ3MeshIterator.

Q3ForEachVertexVertex


#define Q3ForEachVertexVertex(_v, _n, _i)                   \
  for ((_n) = Q3Mesh_FirstVertexVertex((_v), (_i)); \
  (_n) != NULL; \
  (_n) = Q3Mesh_NextVertexVertex((_i)))

Discussion

Macro to aid in iterating over vertices adjacent to a vertex of a Mesh object.

Parameter Descriptions
_v
The vertex.
_n
An adjacent vertex.
_i
Address of a TQ3MeshIterator.

Q3GeneralPolygon_EmptyData


( TQ3Status ) Q3GeneralPolygon_EmptyData (
    TQ3GeneralPolygonData *generalPolygonData
);
Discussion

Release memory allocated by Q3GeneralPolygon_GetData.

Parameter Descriptions
generalPolygonData
Data describing a General Polygon, previously obtained with Q3GeneralPolygon_GetData.
function result
Success or failure of the operation.

Q3GeneralPolygon_GetData


( TQ3Status ) Q3GeneralPolygon_GetData (
    TQ3GeometryObject polygon,
    TQ3GeneralPolygonData *generalPolygonData
);
Discussion

Get the data of a General Polygon object.

This function may allocate memory, which should be freed using Q3GeneralPolygon_EmptyData.

Parameter Descriptions
polygon
A general polygon object.
generalPolygonData
Receives data describing the general polygon object.
function result
Success or failure of the operation.

Q3GeneralPolygon_GetShapeHint


( TQ3Status ) Q3GeneralPolygon_GetShapeHint (
    TQ3GeometryObject generalPolygon,
    TQ3GeneralPolygonShapeHint *shapeHint
);
Discussion

Get the shape hint of a general polygon.

Parameter Descriptions
generalPolygon
A general polygon object.
shapeHint
Receives the shape hint.
function result
Success or failure of the operation.

Q3GeneralPolygon_GetVertexAttributeSet


( TQ3Status ) Q3GeneralPolygon_GetVertexAttributeSet (
    TQ3GeometryObject generalPolygon,
    TQ3Uns32 contourIndex,
    TQ3Uns32 pointIndex,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a vertex of a general polygon.

Parameter Descriptions
generalPolygon
A general polygon object.
contourIndex
A 0-based index into the array of contours.
pointIndex
A 0-based index into the array of vertices of a contour.
attributeSet
Receives a new reference to the vertex attribute set, or NULL.
function result
Success or failure of the operation.

Q3GeneralPolygon_GetVertexPosition


( TQ3Status ) Q3GeneralPolygon_GetVertexPosition (
    TQ3GeometryObject generalPolygon,
    TQ3Uns32 contourIndex,
    TQ3Uns32 pointIndex,
    TQ3Point3D *position
);
Discussion

Get the 3D position of a vertex in a general polygon.

Parameter Descriptions
generalPolygon
A general polygon object.
contourIndex
A 0-based index into the array of contours.
pointIndex
A 0-based index into the array of vertices of a contour.
position
Receives the position of the vertex.
function result
Success or failure of the operation.

Q3GeneralPolygon_New


( TQ3GeometryObject ) Q3GeneralPolygon_New (
    const TQ3GeneralPolygonData *generalPolygonData
);
Discussion

Create a new general polygon geometry object.

Parameter Descriptions
generalPolygonData
Data describing a general polygon.
function result
Reference to a new General Polygon geometry object, or NULL on failure.

Q3GeneralPolygon_SetData


( TQ3Status ) Q3GeneralPolygon_SetData (
    TQ3GeometryObject generalPolygon,
    const TQ3GeneralPolygonData *generalPolygonData
);
Discussion

Modify a general polygon object by supplying a full new set of data.

Parameter Descriptions
generalPolygon
A general polygon object.
generalPolygonData
Data describing a general polygon object.
function result
Success or failure of the operation.

Q3GeneralPolygon_SetShapeHint


( TQ3Status ) Q3GeneralPolygon_SetShapeHint (
    TQ3GeometryObject generalPolygon,
    TQ3GeneralPolygonShapeHint shapeHint
);
Discussion

Set the shape hint of a general polygon.

The hint may allow a renderer to optimize drawing the polygon.

Parameter Descriptions
generalPolygon
A general polygon object.
shapeHint
The shape hint.
function result
Success or failure of the operation.

Q3GeneralPolygon_SetVertexAttributeSet


( TQ3Status ) Q3GeneralPolygon_SetVertexAttributeSet (
    TQ3GeometryObject generalPolygon,
    TQ3Uns32 contourIndex,
    TQ3Uns32 pointIndex,
    TQ3AttributeSet attributeSet
);
Discussion

Assign an attribute set to a vertex of a general polygon.

The function increments the reference count of the attribute set.

Parameter Descriptions
generalPolygon
A general polygon object.
contourIndex
A 0-based index into the array of contours.
pointIndex
A 0-based index into the array of vertices of a contour.
attributeSet
Attribute set for the vertex.
function result
Success or failure of the operation.

Q3GeneralPolygon_SetVertexPosition


( TQ3Status ) Q3GeneralPolygon_SetVertexPosition (
    TQ3GeometryObject generalPolygon,
    TQ3Uns32 contourIndex,
    TQ3Uns32 pointIndex,
    const TQ3Point3D *position
);
Discussion

Set the 3D position of a vertex in a general polygon.

Parameter Descriptions
generalPolygon
A general polygon object.
contourIndex
A 0-based index into the array of contours.
pointIndex
A 0-based index into the array of vertices of a contour.
position
New position for the vertex.
function result
Success or failure of the operation.

Q3GeneralPolygon_Submit


( TQ3Status ) Q3GeneralPolygon_Submit (
    const TQ3GeneralPolygonData *generalPolygonData,
    TQ3ViewObject view
);
Discussion

Submits a general polygon for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
generalPolygonData
Data describing a general polygon.
view
A view object.
function result
Success or failure of the operation.

Q3Geometry_GetAttributeSet


( TQ3Status ) Q3Geometry_GetAttributeSet (
    TQ3GeometryObject geometry,
    TQ3AttributeSet *attributeSet
);
Discussion

Returns the attribute set associated with a geometric object.

This function fills the TQ3AttributeSet* parameter out with the attribute set of the passed in TQ3GeometryObject reference.

The reference count of the attribute set is incremented.

To decrease the reference count when finished with the attribute set, use Q3ObjectDispose().

Parameter Descriptions
geometry
A reference to a geometry object.
attributeSet
Receives a reference to the attribute set of the geometry.
function result
Success or failure of the operation.

Q3Geometry_GetDecomposed


( TQ3Object ) Q3Geometry_GetDecomposed (
    TQ3GeometryObject geometry,
    TQ3ViewObject view
);
Discussion

Creates the decomposed form of the geometry, if any.

The result may be a geometry or a group. If the geometry cannot be decomposed further, NULL is returned.

The decomposition of a given geometry is not documented and is subject to change. Geometries may be decomposed to multiple objects; for example, the decomposition of a cone with a bottom cap may be a group containing a TriMesh and a Disk.

You are free to modify the group or geometry returned by this function, and it is your responsibility to dispose it when you are done with it.

This function must be called in a submitting loop. Depending on the geometry, the result may be affected by the current view state. E.g., the geometry may be affected by the current transforms and camera, or even by styles such as subdivision or orientation.

This function is not available in QD3D.

Parameter Descriptions
geometry
A geometry object.
view
A view object
function result
A new reference to a group or geometry object, or NULL.

Q3Geometry_GetType


( TQ3ObjectType ) Q3Geometry_GetType (
    TQ3GeometryObject geometry
);
Discussion

Returns the type of the GeometryObject passed in.

This function is used to determine the type of geometry object the parameter is a reference to. If 'geometry' is invalid, kQ3ObjectTypeInvalid will be returned.

Parameter Descriptions
geometry
A reference to a geometry object.
function result
A constant enumerating the type of 'geometry'.

Q3Geometry_SetAttributeSet


( TQ3Status ) Q3Geometry_SetAttributeSet (
    TQ3GeometryObject geometry,
    TQ3AttributeSet attributeSet
);
Discussion

Sets the attribute set associated with a geometric object.

Applies the attribute set given by the TQ3AttributeSet parameter onto the TQ3GeometryObject reference passed in.

Parameter Descriptions
geometry
A reference to a geometry object.
attributeSet
The attribute set to apply to the object.
function result
Success or failure of the operation.

Q3Geometry_Submit


( TQ3Status ) Q3Geometry_Submit (
    TQ3GeometryObject geometry,
    TQ3ViewObject view
);
Discussion

Submits a geometry object for drawing, picking, bounding, or writing.

Submits the passed in TQ3GeometryObject to the supplied view for drawing, picking, bounding, or writing.

This function should only be called in a submitting loop.

Parameter Descriptions
geometry
A reference to a (retained) geometry object.
view
The view to submit the geometric object to.
function result
Success or failure of the operation.

Q3Line_EmptyData


( TQ3Status ) Q3Line_EmptyData (
    TQ3LineData *lineData
);
Discussion

Release memory allocated by Q3Line_GetData.

Parameter Descriptions
lineData
Data describing a Line, previously obtained with Q3Line_GetData.
function result
Success or failure of the operation.

Q3Line_GetData


( TQ3Status ) Q3Line_GetData (
    TQ3GeometryObject line,
    TQ3LineData *lineData
);
Discussion

Get the data of a Line object.

This function may allocate memory, which should be freed using Q3Line_EmptyData.

Parameter Descriptions
line
A Line object.
lineData
Receives data describing the Line object.
function result
Success or failure of the operation.

Q3Line_GetVertexAttributeSet


( TQ3Status ) Q3Line_GetVertexAttributeSet (
    TQ3GeometryObject line,
    TQ3Uns32 index,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of one of the ends of a line object.

Parameter Descriptions
line
A line object.
index
An index, 0 or 1, specifying an end of the line.
attributeSet
Receives a new reference to the attribute set, or NULL.
function result
Success or failure of the operation.

Q3Line_GetVertexPosition


( TQ3Status ) Q3Line_GetVertexPosition (
    TQ3GeometryObject line,
    TQ3Uns32 index,
    TQ3Point3D *position
);
Discussion

Get the position of one of the ends of a line.

Parameter Descriptions
line
A line object.
index
An index, 0 or 1, specifying an end of the line.
position
Receives the position of the vertex.
function result
Success or failure of the operation.

Q3Line_New


( TQ3GeometryObject ) Q3Line_New (
    const TQ3LineData *lineData
);
Discussion

Create a new line geometry object.

Parameter Descriptions
lineData
Data describing a line.
function result
Reference to a new Line geometry object, or NULL on failure.

Q3Line_SetData


( TQ3Status ) Q3Line_SetData (
    TQ3GeometryObject line,
    const TQ3LineData *lineData
);
Discussion

Modify a line object by supplying a full new set of data.

Parameter Descriptions
line
A line object.
lineData
Data describing a line.
function result
Success or failure of the operation.

Q3Line_SetVertexAttributeSet


( TQ3Status ) Q3Line_SetVertexAttributeSet (
    TQ3GeometryObject line,
    TQ3Uns32 index,
    TQ3AttributeSet attributeSet
);
Discussion

Assign an attribute set to one of the ends of a line.

Any previous attribute set on the vertex is disposed. The new attribute set has its reference count incremented.

Parameter Descriptions
line
A line object.
index
An index, 0 or 1, specifying an end of the line.
attributeSet
The new attribute set.
function result
Success or failure of the operation.

Q3Line_SetVertexPosition


( TQ3Status ) Q3Line_SetVertexPosition (
    TQ3GeometryObject line,
    TQ3Uns32 index,
    const TQ3Point3D *position
);
Discussion

Change the position of one of the ends of a line object.

Parameter Descriptions
line
A line object.
index
An index, 0 or 1, specifying an end of the line.
position
New position of the vertex.
function result
Success or failure of the operation.

Q3Line_Submit


( TQ3Status ) Q3Line_Submit (
    const TQ3LineData *lineData,
    TQ3ViewObject view
);
Discussion

Submits a line for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
lineData
Data describing a line.
view
A view object.
function result
Success or failure of the operation.

Q3Marker_EmptyData


( TQ3Status ) Q3Marker_EmptyData (
    TQ3MarkerData *markerData
);
Discussion

Release memory allocated by Q3Marker_GetData.

Parameter Descriptions
markerData
Data describing a Marker, previously obtained with Q3Marker_GetData.
function result
Success or failure of the operation.

Q3Marker_GetBitmap


( TQ3Status ) Q3Marker_GetBitmap (
    TQ3GeometryObject marker,
    TQ3Bitmap *bitmap
);
Discussion

Get the bitmap of a Marker object.

This returns a copy of the bitmap of the marker. When you are done with it, use Q3Bitmap_Empty to release the memory.

Parameter Descriptions
marker
A marker object.
bitmap
Receives a copy of the bitmap of the marker.
function result
Success or failure of the operation.

Q3Marker_GetData


( TQ3Status ) Q3Marker_GetData (
    TQ3GeometryObject geometry,
    TQ3MarkerData *markerData
);
Discussion

Get the data of a Marker object.

This function may allocate memory, which should be freed using Q3Marker_EmptyData.

Parameter Descriptions
geometry
A Marker object.
markerData
Receives data describing the Marker object.
function result
Success or failure of the operation.

Q3Marker_GetPosition


( TQ3Status ) Q3Marker_GetPosition (
    TQ3GeometryObject marker,
    TQ3Point3D *location
);
Discussion

Get the position of a Marker object.

The position corresponds to the location field of the TQ3MarkerData structure.

Parameter Descriptions
marker
A marker object.
location
Receives the location of the marker object.
function result
Success or failure of the operation.

Q3Marker_GetXOffset


( TQ3Status ) Q3Marker_GetXOffset (
    TQ3GeometryObject marker,
    TQ3Int32 *xOffset
);
Discussion

Get the horizontal offset, in screen pixels, from the marker location to the upper left corner of the marker bitmap.

Parameter Descriptions
marker
A marker object.
xOffset
Receives the horizontal offset in pixels.
function result
Success or failure of the operation.

Q3Marker_GetYOffset


( TQ3Status ) Q3Marker_GetYOffset (
    TQ3GeometryObject marker,
    TQ3Int32 *yOffset
);
Discussion

Get the vertical offset, in screen pixels, from the marker location to the upper left corner of the marker bitmap.

Parameter Descriptions
marker
A marker object.
yOffset
Receives the vertical offset in pixels.
function result
Success or failure of the operation.

Q3Marker_New


( TQ3GeometryObject ) Q3Marker_New (
    const TQ3MarkerData *markerData
);
Discussion

Create a new marker geometry object.

Parameter Descriptions
markerData
Data describing a marker.
function result
Reference to a new Marker geometry object, or NULL on failure.

Q3Marker_SetBitmap


( TQ3Status ) Q3Marker_SetBitmap (
    TQ3GeometryObject marker,
    const TQ3Bitmap *bitmap
);
Discussion

Change the bitmap of a Marker object.

This makes a copy of the bitmap data, so you can dispose of the original.

Parameter Descriptions
marker
A marker object.
bitmap
New bitmap to be used by the marker.
function result
Success or failure of the operation.

Q3Marker_SetData


( TQ3Status ) Q3Marker_SetData (
    TQ3GeometryObject geometry,
    const TQ3MarkerData *markerData
);
Discussion

Modify a marker object by supplying a full new set of data.

Parameter Descriptions
geometry
A marker object.
markerData
Data describing a marker.
function result
Success or failure of the operation.

Q3Marker_SetPosition


( TQ3Status ) Q3Marker_SetPosition (
    TQ3GeometryObject marker,
    const TQ3Point3D *location
);
Discussion

Set the position of a Marker object.

The position corresponds to the location field of the TQ3MarkerData structure.

Parameter Descriptions
marker
A marker object.
location
New location of the marker object.
function result
Success or failure of the operation.

Q3Marker_SetXOffset


( TQ3Status ) Q3Marker_SetXOffset (
    TQ3GeometryObject marker,
    TQ3Int32 xOffset
);
Discussion

Set the horizontal offset, in screen pixels, from the marker location to the upper left corner of the marker bitmap.

Parameter Descriptions
marker
A marker object.
xOffset
New horizontal offset in pixels.
function result
Success or failure of the operation.

Q3Marker_SetYOffset


( TQ3Status ) Q3Marker_SetYOffset (
    TQ3GeometryObject marker,
    TQ3Int32 yOffset
);
Discussion

Set the vertical offset, in screen pixels, from the marker location to the upper left corner of the marker bitmap.

Parameter Descriptions
marker
A marker object.
yOffset
New vertical offset in pixels.
function result
Success or failure of the operation.

Q3Marker_Submit


( TQ3Status ) Q3Marker_Submit (
    const TQ3MarkerData *markerData,
    TQ3ViewObject view
);
Discussion

Submits a marker for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
markerData
Data describing a marker.
view
A view object.
function result
Success or failure of the operation.

Q3Mesh_ContourToFace


( TQ3MeshFace ) Q3Mesh_ContourToFace (
    TQ3GeometryObject mesh,
    TQ3MeshContour contour
);
Discussion

Convert a mesh face to a contour.

Parameter Descriptions
mesh
The mesh to update.
contour
The contour to convert to a face.
function result
The new mesh face.

Q3Mesh_DelayUpdates


( TQ3Status ) Q3Mesh_DelayUpdates (
    TQ3GeometryObject mesh
);
Discussion

Delay updates to a mesh.

Can be used before a mesh is edited to allow Quesa to defer any geometrical optimisations on the mesh. While updates are deferred, Quesa will select a more flexible internal mesh representation.

Parameter Descriptions
mesh
The mesh to delay updates on.
function result
Success or failure of the operation.

Q3Mesh_EmptyData


( TQ3Status ) Q3Mesh_EmptyData (
    TQ3MeshData *meshData
);
Discussion

Releases the memory allocated by a prior call to Q3Mesh_GetData.

This function is not available in QD3D.

Parameter Descriptions
meshData
A pointer to the mesh data allocated by Q3Mesh_GetData().
function result
Success or failure of the operation.

Q3Mesh_FaceDelete


( TQ3Status ) Q3Mesh_FaceDelete (
    TQ3GeometryObject mesh,
    TQ3MeshFace face
);
Discussion

Delete a mesh face.

Parameter Descriptions
mesh
The mesh to remove the face from.
face
The mesh face to delete.
function result
Success or failure of the operation.

Q3Mesh_FaceNew


( TQ3MeshFace ) Q3Mesh_FaceNew (
    TQ3GeometryObject mesh,
    TQ3Uns32 numVertices,
    const TQ3MeshVertex *vertices,
    TQ3AttributeSet attributeSet
);
Discussion

Create a new mesh face.

Parameter Descriptions
mesh
The mesh to create the face within.
numVertices
The number of vertices in the face.
vertices
The vertices for the face.
attributeSet
The attribute set for the face.
function result
The new mesh face.

Q3Mesh_FaceToContour


( TQ3MeshContour ) Q3Mesh_FaceToContour (
    TQ3GeometryObject mesh,
    TQ3MeshFace containerFace,
    TQ3MeshFace face
);
Discussion

Convert a mesh face to a contour.

Parameter Descriptions
mesh
The mesh to update.
containerFace
The face containing the face which will be converted.
face
The face to convert to a contour.
function result
The new mesh contour.

Q3Mesh_FirstComponentEdge


( TQ3MeshEdge ) Q3Mesh_FirstComponentEdge (
    TQ3MeshComponent component,
    TQ3MeshIterator *iterator
);
Discussion

Get the first edge in a mesh component.

Parameter Descriptions
component
The component to query.
iterator
Receives the mesh iterator.
function result
The first edge in the component.

Q3Mesh_FirstComponentVertex


( TQ3MeshVertex ) Q3Mesh_FirstComponentVertex (
    TQ3MeshComponent component,
    TQ3MeshIterator *iterator
);
Discussion

Get the first vertex in a mesh component.

Parameter Descriptions
component
The component to query.
iterator
Receives the mesh iterator.
function result
The first vertex in the component.

Q3Mesh_FirstContourEdge


( TQ3MeshEdge ) Q3Mesh_FirstContourEdge (
    TQ3MeshContour contour,
    TQ3MeshIterator *iterator
);
Discussion

Get the first edge in a mesh contour.

Parameter Descriptions
contour
The contour to query.
iterator
Receives the mesh iterator.
function result
The first edge in the contour.

Q3Mesh_FirstContourFace


( TQ3MeshFace ) Q3Mesh_FirstContourFace (
    TQ3MeshContour contour,
    TQ3MeshIterator *iterator
);
Discussion

Get the first face in a mesh contour.

Parameter Descriptions
contour
The contour to query.
iterator
Receives the mesh iterator.
function result
The first face in the contour.

Q3Mesh_FirstContourVertex


( TQ3MeshVertex ) Q3Mesh_FirstContourVertex (
    TQ3MeshContour contour,
    TQ3MeshIterator *iterator
);
Discussion

Get the first vertex in a mesh contour.

Parameter Descriptions
contour
The contour to query.
iterator
Receives the mesh iterator.
function result
The first vertex in the contour.

Q3Mesh_FirstFaceContour


( TQ3MeshContour ) Q3Mesh_FirstFaceContour (
    TQ3MeshFace face,
    TQ3MeshIterator *iterator
);
Discussion

Get the first contour in a mesh face.

Parameter Descriptions
face
The face to query.
iterator
Receives the mesh iterator.
function result
The first contour in the face.

Q3Mesh_FirstFaceEdge


( TQ3MeshEdge ) Q3Mesh_FirstFaceEdge (
    TQ3MeshFace face,
    TQ3MeshIterator *iterator
);
Discussion

Get the first edge in a mesh face.

Parameter Descriptions
face
The face to query.
iterator
Receives the mesh iterator.
function result
The first edge in the face.

Q3Mesh_FirstFaceFace


( TQ3MeshFace ) Q3Mesh_FirstFaceFace (
    TQ3MeshFace face,
    TQ3MeshIterator *iterator
);
Discussion

Get the first face in a mesh face.

Parameter Descriptions
face
The face to query.
iterator
Receives the mesh iterator.
function result
The first face in the face.

Q3Mesh_FirstFaceVertex


( TQ3MeshVertex ) Q3Mesh_FirstFaceVertex (
    TQ3MeshFace face,
    TQ3MeshIterator *iterator
);
Discussion

Get the first vertex in a mesh face.

Parameter Descriptions
face
The face to query.
iterator
Receives the mesh iterator.
function result
The first vertex in the face.

Q3Mesh_FirstMeshComponent


( TQ3MeshComponent ) Q3Mesh_FirstMeshComponent (
    TQ3GeometryObject mesh,
    TQ3MeshIterator *iterator
);
Discussion

Get the first component in a mesh.

Parameter Descriptions
mesh
The mesh to query.
iterator
Receives the mesh iterator.
function result
The first component in the mesh.

Q3Mesh_FirstMeshEdge


( TQ3MeshEdge ) Q3Mesh_FirstMeshEdge (
    TQ3GeometryObject mesh,
    TQ3MeshIterator *iterator
);
Discussion

Get the first edge in a mesh.

Parameter Descriptions
mesh
The mesh to query.
iterator
Receives the mesh iterator.
function result
The first edge in the mesh.

Q3Mesh_FirstMeshFace


( TQ3MeshFace ) Q3Mesh_FirstMeshFace (
    TQ3GeometryObject mesh,
    TQ3MeshIterator *iterator
);
Discussion

Get the first face in a mesh.

Parameter Descriptions
mesh
The mesh to query.
iterator
Receives the mesh iterator.
function result
The first face in the mesh.

Q3Mesh_FirstMeshVertex


( TQ3MeshVertex ) Q3Mesh_FirstMeshVertex (
    TQ3GeometryObject mesh,
    TQ3MeshIterator *iterator
);
Discussion

Get the first vertex in a mesh.

Parameter Descriptions
mesh
The mesh to query.
iterator
Receives the mesh iterator.
function result
The first vertex in the mesh.

Q3Mesh_FirstVertexEdge


( TQ3MeshEdge ) Q3Mesh_FirstVertexEdge (
    TQ3MeshVertex vertex,
    TQ3MeshIterator *iterator
);
Discussion

Get the first edge in a mesh vertex.

Parameter Descriptions
vertex
The vertex to query.
iterator
Receives the mesh iterator.
function result
The first edge in the vertex.

Q3Mesh_FirstVertexFace


( TQ3MeshFace ) Q3Mesh_FirstVertexFace (
    TQ3MeshVertex vertex,
    TQ3MeshIterator *iterator
);
Discussion

Get the first face in a mesh vertex.

Parameter Descriptions
vertex
The vertex to query.
iterator
Receives the mesh iterator.
function result
The first face in the vertex.

Q3Mesh_FirstVertexVertex


( TQ3MeshVertex ) Q3Mesh_FirstVertexVertex (
    TQ3MeshVertex vertex,
    TQ3MeshIterator *iterator
);
Discussion

Get the first vertex in a mesh vertex.

Parameter Descriptions
vertex
The vertex to query.
iterator
Receives the mesh iterator.
function result
The first vertex in the vertex.

Q3Mesh_GetComponentBoundingBox


( TQ3Status ) Q3Mesh_GetComponentBoundingBox (
    TQ3GeometryObject mesh,
    TQ3MeshComponent component,
    TQ3BoundingBox *boundingBox
);
Discussion

Get the bounding box of a mesh component

Parameter Descriptions
mesh
The mesh to query.
component
The component to query.
boundingBox
Receives the bounding box of the component.
function result
Success or failure of the operation.

Q3Mesh_GetComponentNumEdges


( TQ3Status ) Q3Mesh_GetComponentNumEdges (
    TQ3GeometryObject mesh,
    TQ3MeshComponent component,
    TQ3Uns32 *numEdges
);
Discussion

Get the number of edges in a mesh component

Parameter Descriptions
mesh
The mesh to query.
component
The component to query.
numEdges
Receives the number of edges in the component.
function result
Success or failure of the operation.

Q3Mesh_GetComponentNumVertices


( TQ3Status ) Q3Mesh_GetComponentNumVertices (
    TQ3GeometryObject mesh,
    TQ3MeshComponent component,
    TQ3Uns32 *numVertices
);
Discussion

Get the number of vertices in a mesh component

Parameter Descriptions
mesh
The mesh to query.
component
The component to query.
numVertices
Receives the number of vertices in the component.
function result
Success or failure of the operation.

Q3Mesh_GetComponentOrientable


( TQ3Status ) Q3Mesh_GetComponentOrientable (
    TQ3GeometryObject mesh,
    TQ3MeshComponent component,
    TQ3Boolean *orientable
);
Discussion

Get the orientable state of a mesh component

Parameter Descriptions
mesh
The mesh to query.
component
The component to query.
orientable
Receives the orientable state of the component.
function result
Success or failure of the operation.

Q3Mesh_GetContourFace


( TQ3Status ) Q3Mesh_GetContourFace (
    TQ3GeometryObject mesh,
    TQ3MeshContour contour,
    TQ3MeshFace *face
);
Discussion

Get the face of a mesh contour.

Parameter Descriptions
mesh
The mesh to query.
contour
The contour to query.
face
Receives the face of the mesh contour.
function result
Success or failure of the operation.

Q3Mesh_GetContourNumVertices


( TQ3Status ) Q3Mesh_GetContourNumVertices (
    TQ3GeometryObject mesh,
    TQ3MeshContour contour,
    TQ3Uns32 *numVertices
);
Discussion

Get the number of vertices in a mesh contour.

Parameter Descriptions
mesh
The mesh to query.
contour
The contour to query.
numVertices
Receives the number of vertices in the mesh contour.
function result
Success or failure of the operation.

Q3Mesh_GetCornerAttributeSet


( TQ3Status ) Q3Mesh_GetCornerAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3MeshFace face,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a mesh corner.

Parameter Descriptions
mesh
The mesh to query.
vertex
The vertex to query.
face
The face to query.
attributeSet
Receives the attribute set of the mesh corner.
function result
Success or failure of the operation.

Q3Mesh_GetData


( TQ3Status ) Q3Mesh_GetData (
    TQ3GeometryObject mesh,
    TQ3MeshData *meshData
);
Discussion

Gets the properties of an existing mesh object.

Memory is allocated for the 'meshData' parameter, and Q3Mesh_EmptyData must be called to dispose of this memory.

This function is not available in QD3D.

Parameter Descriptions
mesh
A reference to a mesh geometry object.
meshData
Receives the mesh object's description.
function result
Success or failure of the operation.

Q3Mesh_GetEdgeAttributeSet


( TQ3Status ) Q3Mesh_GetEdgeAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshEdge edge,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a mesh edge.

Parameter Descriptions
mesh
The mesh to query.
edge
The edge to query.
attributeSet
Receives the attribute set of the mesh edge.
function result
Success or failure of the operation.

Q3Mesh_GetEdgeComponent


( TQ3Status ) Q3Mesh_GetEdgeComponent (
    TQ3GeometryObject mesh,
    TQ3MeshEdge edge,
    TQ3MeshComponent *component
);
Discussion

Get the component of a mesh edge.

Parameter Descriptions
mesh
The mesh to query.
edge
The edge to query.
component
Receives the component of the mesh edge.
function result
Success or failure of the operation.

Q3Mesh_GetEdgeFaces


( TQ3Status ) Q3Mesh_GetEdgeFaces (
    TQ3GeometryObject mesh,
    TQ3MeshEdge edge,
    TQ3MeshFace *face1,
    TQ3MeshFace *face2
);
Discussion

Get the faces of a mesh edge.

Parameter Descriptions
mesh
The mesh to query.
edge
The edge to query.
face1
Receives the first face of the mesh edge.
face2
Receives the second face of the mesh edge.
function result
Success or failure of the operation.

Q3Mesh_GetEdgeOnBoundary


( TQ3Status ) Q3Mesh_GetEdgeOnBoundary (
    TQ3GeometryObject mesh,
    TQ3MeshEdge edge,
    TQ3Boolean *onBoundary
);
Discussion

Get the boundary state of a mesh edge.

Parameter Descriptions
mesh
The mesh to query.
edge
The edge to query.
onBoundary
Receives the boundary state of the mesh edge.
function result
Success or failure of the operation.

Q3Mesh_GetEdgeVertices


( TQ3Status ) Q3Mesh_GetEdgeVertices (
    TQ3GeometryObject mesh,
    TQ3MeshEdge edge,
    TQ3MeshVertex *vertex1,
    TQ3MeshVertex *vertex2
);
Discussion

Get the vertices of a mesh edge.

Parameter Descriptions
mesh
The mesh to query.
edge
The edge to query.
vertex1
Receives the first vertex of the mesh edge.
vertex2
Receives the second vertex of the mesh edge.
function result
Success or failure of the operation.

Q3Mesh_GetFaceAttributeSet


( TQ3Status ) Q3Mesh_GetFaceAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a mesh face.

Parameter Descriptions
mesh
The mesh to query.
face
The face to query.
attributeSet
Receives the attribute set of the mesh face.
function result
Success or failure of the operation.

Q3Mesh_GetFaceComponent


( TQ3Status ) Q3Mesh_GetFaceComponent (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3MeshComponent *component
);
Discussion

Get the component of a mesh face.

Parameter Descriptions
mesh
The mesh to query.
face
The face to query.
component
Receives the component of the mesh face.
function result
Success or failure of the operation.

Q3Mesh_GetFaceIndex


( TQ3Status ) Q3Mesh_GetFaceIndex (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3Uns32 *index
);
Discussion

Get the index of a mesh face.

Parameter Descriptions
mesh
The mesh to query.
face
The face to query.
index
Receives the index of the mesh face.
function result
Success or failure of the operation.

Q3Mesh_GetFaceNumContours


( TQ3Status ) Q3Mesh_GetFaceNumContours (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3Uns32 *numContours
);
Discussion

Get the number of contours of a mesh face.

Parameter Descriptions
mesh
The mesh to query.
face
The face to query.
numContours
Receives the number of contours of the mesh face.
function result
Success or failure of the operation.

Q3Mesh_GetFaceNumVertices


( TQ3Status ) Q3Mesh_GetFaceNumVertices (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3Uns32 *numVertices
);
Discussion

Get the number of vertices in a mesh face.

Parameter Descriptions
mesh
The mesh to query.
face
The face to query.
numVertices
Receives the number of vertices in the mesh face.
function result
Success or failure of the operation.

Q3Mesh_GetFacePlaneEquation


( TQ3Status ) Q3Mesh_GetFacePlaneEquation (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3PlaneEquation *planeEquation
);
Discussion

Get the plane equation of a mesh face.

Parameter Descriptions
mesh
The mesh to query.
face
The face to query.
planeEquation
Receives the plane equation of the mesh face.
function result
Success or failure of the operation.

Q3Mesh_GetNumComponents


( TQ3Status ) Q3Mesh_GetNumComponents (
    TQ3GeometryObject mesh,
    TQ3Uns32 *numComponents
);
Discussion

Get the number of components of a mesh.

Parameter Descriptions
mesh
The mesh to query.
numComponents
Receives the number of components of the mesh.
function result
Success or failure of the operation.

Q3Mesh_GetNumCorners


( TQ3Status ) Q3Mesh_GetNumCorners (
    TQ3GeometryObject mesh,
    TQ3Uns32 *numCorners
);
Discussion

Get the number of corners in a mesh

Parameter Descriptions
mesh
The mesh to query.
numCorners
Receives the number of corners in the mesh.
function result
Success or failure of the operation.

Q3Mesh_GetNumEdges


( TQ3Status ) Q3Mesh_GetNumEdges (
    TQ3GeometryObject mesh,
    TQ3Uns32 *numEdges
);
Discussion

Get the number of edges in a mesh

Parameter Descriptions
mesh
The mesh to query.
numEdges
Receives the number of edges in the mesh.
function result
Success or failure of the operation.

Q3Mesh_GetNumFaces


( TQ3Status ) Q3Mesh_GetNumFaces (
    TQ3GeometryObject mesh,
    TQ3Uns32 *numFaces
);
Discussion

Get the number of faces in a mesh

Parameter Descriptions
mesh
The mesh to query.
numFaces
Receives the number of faces in the mesh.
function result
Success or failure of the operation.

Q3Mesh_GetNumVertices


( TQ3Status ) Q3Mesh_GetNumVertices (
    TQ3GeometryObject mesh,
    TQ3Uns32 *numVertices
);
Discussion

Get the number of vertices in a mesh

Parameter Descriptions
mesh
The mesh to query.
numVertices
Receives the number of vertices in the mesh.
function result
Success or failure of the operation.

Q3Mesh_GetOrientable


( TQ3Status ) Q3Mesh_GetOrientable (
    TQ3GeometryObject mesh,
    TQ3Boolean *orientable
);
Discussion

Get the mesh orientable state

Parameter Descriptions
mesh
The mesh to query.
orientable
Receives the mesh orientable state.
function result
Success or failure of the operation.

Q3Mesh_GetVertexAttributeSet


( TQ3Status ) Q3Mesh_GetVertexAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a mesh vertex.

Parameter Descriptions
mesh
The mesh to query.
vertex
The vertex to query.
attributeSet
Receives the attribute set of the mesh vertex.
function result
Success or failure of the operation.

Q3Mesh_GetVertexComponent


( TQ3Status ) Q3Mesh_GetVertexComponent (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3MeshComponent *component
);
Discussion

Get the component of a mesh vertex.

Parameter Descriptions
mesh
The mesh to query.
vertex
The vertex to query.
component
Receives the component of the mesh vertex.
function result
Success or failure of the operation.

Q3Mesh_GetVertexCoordinates


( TQ3Status ) Q3Mesh_GetVertexCoordinates (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3Point3D *coordinates
);
Discussion

Get the coordinates of a mesh vertex.

Parameter Descriptions
mesh
The mesh to query.
vertex
The vertex to query.
coordinates
Receives the coordinates of the vertex.
function result
Success or failure of the operation.

Q3Mesh_GetVertexIndex


( TQ3Status ) Q3Mesh_GetVertexIndex (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3Uns32 *index
);
Discussion

Get the index of a mesh vertex.

Parameter Descriptions
mesh
The mesh to query.
vertex
The vertex to query.
index
Receives the index of the vertex.
function result
Success or failure of the operation.

Q3Mesh_GetVertexOnBoundary


( TQ3Status ) Q3Mesh_GetVertexOnBoundary (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3Boolean *onBoundary
);
Discussion

Get the boundary state for a mesh vertex

Parameter Descriptions
mesh
The mesh to query.
vertex
The vertex to query.
onBoundary
Receives the vertex boundary state.
function result
Success or failure of the operation.

Q3Mesh_New


( TQ3GeometryObject ) Q3Mesh_New (void);
Discussion

Create a new empty Mesh geometry object.

function result
Reference to a new Mesh geometry object, or NULL on failure.

Q3Mesh_NextComponentEdge


( TQ3MeshEdge ) Q3Mesh_NextComponentEdge (
    TQ3MeshIterator *iterator
);
Discussion

Get the next edge in a mesh component.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next edge in the component.

Q3Mesh_NextComponentVertex


( TQ3MeshVertex ) Q3Mesh_NextComponentVertex (
    TQ3MeshIterator *iterator
);
Discussion

Get the next vertex in a mesh component.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next vertex in the component.

Q3Mesh_NextContourEdge


( TQ3MeshEdge ) Q3Mesh_NextContourEdge (
    TQ3MeshIterator *iterator
);
Discussion

Get the next edge in a mesh contour.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next edge in the contour.

Q3Mesh_NextContourFace


( TQ3MeshFace ) Q3Mesh_NextContourFace (
    TQ3MeshIterator *iterator
);
Discussion

Get the next face in a mesh contour.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next face in the contour.

Q3Mesh_NextContourVertex


( TQ3MeshVertex ) Q3Mesh_NextContourVertex (
    TQ3MeshIterator *iterator
);
Discussion

Get the next vertex in a mesh contour.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next vertex in the contour.

Q3Mesh_NextFaceContour


( TQ3MeshContour ) Q3Mesh_NextFaceContour (
    TQ3MeshIterator *iterator
);
Discussion

Get the next contour in a mesh face.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next contour in the face.

Q3Mesh_NextFaceEdge


( TQ3MeshEdge ) Q3Mesh_NextFaceEdge (
    TQ3MeshIterator *iterator
);
Discussion

Get the next edge in a mesh face.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next edge in the face.

Q3Mesh_NextFaceFace


( TQ3MeshFace ) Q3Mesh_NextFaceFace (
    TQ3MeshIterator *iterator
);
Discussion

Get the next face in a mesh face.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next face in the face.

Q3Mesh_NextFaceVertex


( TQ3MeshVertex ) Q3Mesh_NextFaceVertex (
    TQ3MeshIterator *iterator
);
Discussion

Get the next vertex in a mesh face.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next vertex in the face.

Q3Mesh_NextMeshComponent


( TQ3MeshComponent ) Q3Mesh_NextMeshComponent (
    TQ3MeshIterator *iterator
);
Discussion

Get the next component in a mesh.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next component in the mesh.

Q3Mesh_NextMeshEdge


( TQ3MeshEdge ) Q3Mesh_NextMeshEdge (
    TQ3MeshIterator *iterator
);
Discussion

Get the next edge in a mesh.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next edge in the mesh.

Q3Mesh_NextMeshFace


( TQ3MeshFace ) Q3Mesh_NextMeshFace (
    TQ3MeshIterator *iterator
);
Discussion

Get the next face in a mesh.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next face in the mesh.

Q3Mesh_NextMeshVertex


( TQ3MeshVertex ) Q3Mesh_NextMeshVertex (
    TQ3MeshIterator *iterator
);
Discussion

Get the next vertex in a mesh.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next vertex in the mesh.

Q3Mesh_NextVertexEdge


( TQ3MeshEdge ) Q3Mesh_NextVertexEdge (
    TQ3MeshIterator *iterator
);
Discussion

Get the next edge in a mesh vertex.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next edge in the vertex.

Q3Mesh_NextVertexFace


( TQ3MeshFace ) Q3Mesh_NextVertexFace (
    TQ3MeshIterator *iterator
);
Discussion

Get the next face in a mesh vertex.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next face in the vertex.

Q3Mesh_NextVertexVertex


( TQ3MeshVertex ) Q3Mesh_NextVertexVertex (
    TQ3MeshIterator *iterator
);
Discussion

Get the next vertex in a mesh vertex.

Parameter Descriptions
iterator
The mesh iterator.
function result
The next vertex in the vertex.

Q3Mesh_ResumeUpdates


( TQ3Status ) Q3Mesh_ResumeUpdates (
    TQ3GeometryObject mesh
);
Discussion

Resume updates to a mesh.

Should be used after a preceding call to Q3Mesh_DelayUpdates to indicate to Quesa that an optimised internal representation of the mesh would be preferred to a more flexible form.

Parameter Descriptions
mesh
The mesh to resume updatse for.
function result
Success or failure of the operation.

Q3Mesh_SetCornerAttributeSet


( TQ3Status ) Q3Mesh_SetCornerAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3MeshFace face,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set for a mesh corner.

Parameter Descriptions
mesh
The mesh to update.
vertex
The vertex to update.
face
The face to update.
attributeSet
The new attribute set for the mesh corner.
function result
Success or failure of the operation.

Q3Mesh_SetData


( TQ3Status ) Q3Mesh_SetData (
    TQ3GeometryObject mesh,
    const TQ3MeshData *meshData
);
Discussion

Sets the properties of an existing mesh object.

If successful, this function invalidates all preexisting references to mesh parts (TQ3MeshVertex, TQ3MeshContour, TQ3MeshFace, TQ3MeshCorner, TQ3MeshEdge, TQ3MeshComponent) and mesh iterators (TQ3MeshIterator).

This function is not available in QD3D.

Parameter Descriptions
mesh
A reference to a mesh geometry object.
meshData
A pointer to the mesh data to apply to the mesh object.
function result
Success or failure of the operation.

Q3Mesh_SetEdgeAttributeSet


( TQ3Status ) Q3Mesh_SetEdgeAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshEdge edge,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set for a mesh edge.

Parameter Descriptions
mesh
The mesh to update.
edge
The edge to update.
attributeSet
The new attribute set for the mesh edge.
function result
Success or failure of the operation.

Q3Mesh_SetFaceAttributeSet


( TQ3Status ) Q3Mesh_SetFaceAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshFace face,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a mesh face.

Parameter Descriptions
mesh
The mesh to update.
face
The face to update.
attributeSet
The new attribute set for the mesh face.
function result
Success or failure of the operation.

Q3Mesh_SetVertexAttributeSet


( TQ3Status ) Q3Mesh_SetVertexAttributeSet (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a mesh vertex

Parameter Descriptions
mesh
The mesh to udate.
vertex
The vertex to update.
attributeSet
The new attribute set for the mesh vertex.
function result
Success or failure of the operation.

Q3Mesh_SetVertexCoordinates


( TQ3Status ) Q3Mesh_SetVertexCoordinates (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex,
    const TQ3Point3D *coordinates
);
Discussion

Set the coordinates of a mesh vertex.

Parameter Descriptions
mesh
The mesh to update.
vertex
The vertex to update.
coordinates
The new coordinates for the mesh vertex.
function result
Success or failure of the operation.

Q3Mesh_VertexDelete


( TQ3Status ) Q3Mesh_VertexDelete (
    TQ3GeometryObject mesh,
    TQ3MeshVertex vertex
);
Discussion

Delete a mesh vertex.

Parameter Descriptions
mesh
The mesh to remove the vertex from.
vertex
The mesh vertex to delete.
function result
Success or failure of the operation.

Q3Mesh_VertexNew


( TQ3MeshVertex ) Q3Mesh_VertexNew (
    TQ3GeometryObject mesh,
    const TQ3Vertex3D *vertex
);
Discussion

Create a new mesh vertex.

Parameter Descriptions
mesh
The mesh to create the vertex within.
vertex
The data for the vertex.
function result
The new mesh vertex.

Q3NURBCurve_EmptyData


( TQ3Status ) Q3NURBCurve_EmptyData (
    TQ3NURBCurveData *nurbCurveData
);
Discussion

Release memory allocated by Q3NURBCurve_GetData.

Parameter Descriptions
nurbCurveData
Data describing a NURB Curve, previously obtained with Q3NURBCurve_GetData.
function result
Success or failure of the operation.

Q3NURBCurve_GetControlPoint


( TQ3Status ) Q3NURBCurve_GetControlPoint (
    TQ3GeometryObject curve,
    TQ3Uns32 pointIndex,
    TQ3RationalPoint4D *point4D
);
Discussion

Get a control point from a NURB curve.

Parameter Descriptions
curve
The NURB curve to query.
pointIndex
The index of the point to query.
point4D
Receives the control point value.
function result
Success or failure of the operation.

Q3NURBCurve_GetData


( TQ3Status ) Q3NURBCurve_GetData (
    TQ3GeometryObject curve,
    TQ3NURBCurveData *nurbCurveData
);
Discussion

Get the data of a NURB Curve object.

This function may allocate memory, which should be freed using Q3NURBCurve_EmptyData.

Parameter Descriptions
curve
A NURB Curve object.
nurbCurveData
Receives data describing the NURB Curve object.
function result
Success or failure of the operation.

Q3NURBCurve_GetKnot


( TQ3Status ) Q3NURBCurve_GetKnot (
    TQ3GeometryObject curve,
    TQ3Uns32 knotIndex,
    float *knotValue
);
Discussion

Get a knot from a NURB curve.

Parameter Descriptions
curve
The NURB curve to query.
knotIndex
The index of the knot to query.
knotValue
Receives the knot value.
function result
Success or failure of the operation.

Q3NURBCurve_New


( TQ3GeometryObject ) Q3NURBCurve_New (
    const TQ3NURBCurveData *curveData
);
Discussion

Create a new NURB curve geometry object.

Parameter Descriptions
curveData
Data describing a NURB curve.
function result
Reference to a new NURB curve geometry object, or NULL on failure.

Q3NURBCurve_SetControlPoint


( TQ3Status ) Q3NURBCurve_SetControlPoint (
    TQ3GeometryObject curve,
    TQ3Uns32 pointIndex,
    const TQ3RationalPoint4D *point4D
);
Discussion

Set a control point for a NURB curve.

Parameter Descriptions
curve
The NURB curve to update.
pointIndex
The index of the point to update.
point4D
The new control point value.
function result
Success or failure of the operation.

Q3NURBCurve_SetData


( TQ3Status ) Q3NURBCurve_SetData (
    TQ3GeometryObject curve,
    const TQ3NURBCurveData *nurbCurveData
);
Discussion

Modify a NURB curve object by supplying a full new set of data.

Parameter Descriptions
curve
A NURB curve object.
nurbCurveData
Data describing a NURB curve object.
function result
Success or failure of the operation.

Q3NURBCurve_SetKnot


( TQ3Status ) Q3NURBCurve_SetKnot (
    TQ3GeometryObject curve,
    TQ3Uns32 knotIndex,
    float knotValue
);
Discussion

Set a knot for a NURB curve.

Parameter Descriptions
curve
The NURB curve to update.
knotIndex
The index of the knot to update.
knotValue
The new knot value.
function result
Success or failure of the operation.

Q3NURBCurve_Submit


( TQ3Status ) Q3NURBCurve_Submit (
    const TQ3NURBCurveData *curveData,
    TQ3ViewObject view
);
Discussion

Submits a NURB curve for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
curveData
Data describing a NURB curve.
view
A view object.
function result
Success or failure of the operation.

Q3NURBPatch_EmptyData


( TQ3Status ) Q3NURBPatch_EmptyData (
    TQ3NURBPatchData *nurbPatchData
);
Discussion

Release memory allocated by Q3NURBPatch_GetData.

Parameter Descriptions
nurbPatchData
Data describing a NURB Patch, previously obtained with Q3NURBPatch_GetData.
function result
Success or failure of the operation.

Q3NURBPatch_GetControlPoint


( TQ3Status ) Q3NURBPatch_GetControlPoint (
    TQ3GeometryObject nurbPatch,
    TQ3Uns32 rowIndex,
    TQ3Uns32 columnIndex,
    TQ3RationalPoint4D *point4D
);
Discussion

Get a control point for a NURB patch.

Parameter Descriptions
nurbPatch
The NURB patch to query.
rowIndex
The row index of the control point.
columnIndex
The column index of the control point.
point4D
Receives the control point value.
function result
Success or failure of the operation.

Q3NURBPatch_GetData


( TQ3Status ) Q3NURBPatch_GetData (
    TQ3GeometryObject nurbPatch,
    TQ3NURBPatchData *nurbPatchData
);
Discussion

Get the data of a NURB Patch object.

This function may allocate memory, which should be freed using Q3NURBPatch_EmptyData.

Parameter Descriptions
nurbPatch
A NURB Patch object.
nurbPatchData
Receives data describing the NURB Patch object.
function result
Success or failure of the operation.

Q3NURBPatch_GetUKnot


( TQ3Status ) Q3NURBPatch_GetUKnot (
    TQ3GeometryObject nurbPatch,
    TQ3Uns32 knotIndex,
    float *knotValue
);
Discussion

Get a U knot from a NURB patch.

Parameter Descriptions
nurbPatch
The NURB patch to query.
knotIndex
The index of the knot to query.
knotValue
Rceives the knot value.
function result
Success or failure of the operation.

Q3NURBPatch_GetVKnot


( TQ3Status ) Q3NURBPatch_GetVKnot (
    TQ3GeometryObject nurbPatch,
    TQ3Uns32 knotIndex,
    float *knotValue
);
Discussion

Get a V knot from a NURB patch.

Parameter Descriptions
nurbPatch
The NURB patch to query.
knotIndex
The index of the knot to query.
knotValue
Rceives the knot value.
function result
Success or failure of the operation.

Q3NURBPatch_New


( TQ3GeometryObject ) Q3NURBPatch_New (
    const TQ3NURBPatchData *nurbPatchData
);
Discussion

Create a new NURB patch geometry object.

Parameter Descriptions
nurbPatchData
Data describing a NURB patch.
function result
Reference to a new NURB patch geometry object, or NULL on failure.

Q3NURBPatch_SetControlPoint


( TQ3Status ) Q3NURBPatch_SetControlPoint (
    TQ3GeometryObject nurbPatch,
    TQ3Uns32 rowIndex,
    TQ3Uns32 columnIndex,
    const TQ3RationalPoint4D *point4D
);
Discussion

Set a control point for a NURB patch.

Parameter Descriptions
nurbPatch
The NURB patch to update.
rowIndex
The row index of the control point.
columnIndex
The column index of the control point.
point4D
The new control point value.
function result
Success or failure of the operation.

Q3NURBPatch_SetData


( TQ3Status ) Q3NURBPatch_SetData (
    TQ3GeometryObject nurbPatch,
    const TQ3NURBPatchData *nurbPatchData
);
Discussion

Modify a NURB patch object by supplying a full new set of data.

Parameter Descriptions
nurbPatch
A NURB patch object.
nurbPatchData
Data describing a NURB patch object.
function result
Success or failure of the operation.

Q3NURBPatch_SetUKnot


( TQ3Status ) Q3NURBPatch_SetUKnot (
    TQ3GeometryObject nurbPatch,
    TQ3Uns32 knotIndex,
    float knotValue
);
Discussion

Set a U knot for a NURB patch.

Parameter Descriptions
nurbPatch
The NURB patch to update.
knotIndex
The index of the knot to update.
knotValue
The new value for the knot.
function result
Success or failure of the operation.

Q3NURBPatch_SetVKnot


( TQ3Status ) Q3NURBPatch_SetVKnot (
    TQ3GeometryObject nurbPatch,
    TQ3Uns32 knotIndex,
    float knotValue
);
Discussion

Set a K knot for a NURB patch.

Parameter Descriptions
nurbPatch
The NURB patch to update.
knotIndex
The index of the knot to update.
knotValue
The new value for the knot.
function result
Success or failure of the operation.

Q3NURBPatch_Submit


( TQ3Status ) Q3NURBPatch_Submit (
    const TQ3NURBPatchData *nurbPatchData,
    TQ3ViewObject view
);
Discussion

Submits a NURB patch for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
nurbPatchData
Data describing a NURB patch.
view
A view object.
function result
Success or failure of the operation.

Q3PixmapMarker_EmptyData


( TQ3Status ) Q3PixmapMarker_EmptyData (
    TQ3PixmapMarkerData *pixmapMarkerData
);
Discussion

Release memory allocated by Q3PixmapMarker_GetData.

Parameter Descriptions
pixmapMarkerData
Data describing a Pixmap Marker, previously obtained with Q3PixmapMarker_GetData.
function result
Success or failure of the operation.

Q3PixmapMarker_GetData


( TQ3Status ) Q3PixmapMarker_GetData (
    TQ3GeometryObject geometry,
    TQ3PixmapMarkerData *pixmapMarkerData
);
Discussion

Get the data of a Pixmap Marker object.

This function may allocate memory, which should be freed using Q3PixmapMarker_EmptyData.

Parameter Descriptions
geometry
A Pixmap Marker object.
pixmapMarkerData
Receives data describing the Pixmap Marker object.
function result
Success or failure of the operation.

Q3PixmapMarker_GetPixmap


( TQ3Status ) Q3PixmapMarker_GetPixmap (
    TQ3GeometryObject pixmapMarker,
    TQ3StoragePixmap *pixmap
);
Discussion

Get a copy of the pixmap used within a pixmap marker, including a new reference to the image storage.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
pixmap
Receives the pixmap structure of the marker.
function result
Success or failure of the operation.

Q3PixmapMarker_GetPosition


( TQ3Status ) Q3PixmapMarker_GetPosition (
    TQ3GeometryObject pixmapMarker,
    TQ3Point3D *position
);
Discussion

Get the position of the pixmap marker in world coordinates.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
position
Receives the position of the pixmap marker.
function result
Success or failure of the operation.

Q3PixmapMarker_GetXOffset


( TQ3Status ) Q3PixmapMarker_GetXOffset (
    TQ3GeometryObject pixmapMarker,
    TQ3Int32 *xOffset
);
Discussion

Get the horizontal offset, in screen pixels, from the marker position to the upper left corner of the marker image.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
xOffset
Receives the horizontal offset of the marker in pixels.
function result
Success or failure of the operation.

Q3PixmapMarker_GetYOffset


( TQ3Status ) Q3PixmapMarker_GetYOffset (
    TQ3GeometryObject pixmapMarker,
    TQ3Int32 *yOffset
);
Discussion

Get the vertical offset, in screen pixels, from the marker position to the upper left corner of the marker image.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
yOffset
Receives the vertical offset of the marker in pixels.
function result
Success or failure of the operation.

Q3PixmapMarker_New


( TQ3GeometryObject ) Q3PixmapMarker_New (
    const TQ3PixmapMarkerData *pixmapMarkerData
);
Discussion

Create a new pixmap marker geometry object.

Parameter Descriptions
pixmapMarkerData
Data describing a pixmap marker.
function result
Reference to a new pixmap marker geometry object, or NULL on failure.

Q3PixmapMarker_SetData


( TQ3Status ) Q3PixmapMarker_SetData (
    TQ3GeometryObject geometry,
    const TQ3PixmapMarkerData *pixmapMarkerData
);
Discussion

Modify a pixmap marker object by supplying a full new set of data.

Parameter Descriptions
geometry
A pixmap marker object.
pixmapMarkerData
Data describing a pixmap marker object.
function result
Success or failure of the operation.

Q3PixmapMarker_SetPixmap


( TQ3Status ) Q3PixmapMarker_SetPixmap (
    TQ3GeometryObject pixmapMarker,
    const TQ3StoragePixmap *pixmap
);
Discussion

Change the pixmap used by a pixmap marker. The function makes a copy of the data, including incrementing the reference count of the image storage.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
pixmap
New pixmap to be used by the marker.
function result
Success or failure of the operation.

Q3PixmapMarker_SetPosition


( TQ3Status ) Q3PixmapMarker_SetPosition (
    TQ3GeometryObject pixmapMarker,
    const TQ3Point3D *position
);
Discussion

Change the position of a pixmap marker object.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
position
New position of the pixmap marker in world coordinates.
function result
Success or failure of the operation.

Q3PixmapMarker_SetXOffset


( TQ3Status ) Q3PixmapMarker_SetXOffset (
    TQ3GeometryObject pixmapMarker,
    TQ3Int32 xOffset
);
Discussion

Set the horizontal offset, in screen pixels, from the marker position to the upper left corner of the marker image.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
xOffset
The horizontal offset of the marker in pixels.
function result
Success or failure of the operation.

Q3PixmapMarker_SetYOffset


( TQ3Status ) Q3PixmapMarker_SetYOffset (
    TQ3GeometryObject pixmapMarker,
    TQ3Int32 yOffset
);
Discussion

Set the vertical offset, in screen pixels, from the marker position to the upper left corner of the marker image.

Parameter Descriptions
pixmapMarker
A pixmap marker object.
yOffset
The vertical offset of the marker in pixels.
function result
Success or failure of the operation.

Q3PixmapMarker_Submit


( TQ3Status ) Q3PixmapMarker_Submit (
    const TQ3PixmapMarkerData *pixmapMarkerData,
    TQ3ViewObject view
);
Discussion

Submits a pixmap marker for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
pixmapMarkerData
Data describing a pixmap marker.
view
A view object.
function result
Success or failure of the operation.

Q3Point_EmptyData


( TQ3Status ) Q3Point_EmptyData (
    TQ3PointData *pointData
);
Discussion

Release memory allocated by Q3Point_GetData.

Parameter Descriptions
pointData
Data describing a Point, previously obtained with Q3Point_GetData.
function result
Success or failure of the operation.

Q3Point_GetData


( TQ3Status ) Q3Point_GetData (
    TQ3GeometryObject point,
    TQ3PointData *pointData
);
Discussion

Get the data of a Point object.

This function may allocate memory, which should be freed using Q3Point_EmptyData.

Parameter Descriptions
point
A Point object.
pointData
Receives data describing the Point object.
function result
Success or failure of the operation.

Q3Point_GetPosition


( TQ3Status ) Q3Point_GetPosition (
    TQ3GeometryObject point,
    TQ3Point3D *position
);
Discussion

Get the position of a point object.

Parameter Descriptions
point
A point object.
position
Receives the position of the point.
function result
Success or failure of the operation.

Q3Point_New


( TQ3GeometryObject ) Q3Point_New (
    const TQ3PointData *pointData
);
Discussion

Create a new point geometry object.

If you pass NULL instead of a data pointer, you will get a point disk, at (0, 0, 0). This behavior was not present in QuickDraw 3D.

Parameter Descriptions
pointData
Data describing a point, or NULL.
function result
Reference to a new Point geometry object, or NULL on failure.

Q3Point_SetData


( TQ3Status ) Q3Point_SetData (
    TQ3GeometryObject point,
    const TQ3PointData *pointData
);
Discussion

Modify a point object by supplying a full new set of data.

Parameter Descriptions
point
A point object
pointData
Data describing a point object.
function result
Success or failure of the operation.

Q3Point_SetPosition


( TQ3Status ) Q3Point_SetPosition (
    TQ3GeometryObject point,
    const TQ3Point3D *position
);
Discussion

Change the position of a point object.

Parameter Descriptions
point
A point object.
position
New position for the point.
function result
Success or failure of the operation.

Q3Point_Submit


( TQ3Status ) Q3Point_Submit (
    const TQ3PointData *pointData,
    TQ3ViewObject view
);
Discussion

Submits a point for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
pointData
Data describing a point.
view
A view object.
function result
Success or failure of the operation.

Q3PolyLine_EmptyData


( TQ3Status ) Q3PolyLine_EmptyData (
    TQ3PolyLineData *polyLineData
);
Discussion

Release memory allocated by Q3PolyLine_GetData.

Parameter Descriptions
polyLineData
Data describing a PolyLine, previously obtained with Q3PolyLine_GetData.
function result
Success or failure of the operation.

Q3PolyLine_GetData


( TQ3Status ) Q3PolyLine_GetData (
    TQ3GeometryObject polyLine,
    TQ3PolyLineData *polyLineData
);
Discussion

Get the data of a PolyLine object.

This function may allocate memory, which should be freed using Q3PolyLine_EmptyData.

Parameter Descriptions
polyLine
A PolyLine object.
polyLineData
Receives data describing the PolyLine object.
function result
Success or failure of the operation.

Q3PolyLine_GetSegmentAttributeSet


( TQ3Status ) Q3PolyLine_GetSegmentAttributeSet (
    TQ3GeometryObject polyLine,
    TQ3Uns32 index,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a polyline segment.

Parameter Descriptions
polyLine
The polyline to query.
index
The index of the segment to query.
attributeSet
Receives the attribute set of the polyline segment.
function result
Success or failure of the operation.

Q3PolyLine_GetVertexAttributeSet


( TQ3Status ) Q3PolyLine_GetVertexAttributeSet (
    TQ3GeometryObject polyLine,
    TQ3Uns32 index,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a polyline vertex.

Parameter Descriptions
polyLine
The polyline to query.
index
The index of the vertex to query.
attributeSet
Receives the attribute set of the polyline vertex.
function result
Success or failure of the operation.

Q3PolyLine_GetVertexPosition


( TQ3Status ) Q3PolyLine_GetVertexPosition (
    TQ3GeometryObject polyLine,
    TQ3Uns32 index,
    TQ3Point3D *position
);
Discussion

Get the position of a polyline vertex.

Parameter Descriptions
polyLine
The polyline to query.
index
The index of the vertex to query.
position
Receives the position of the polyline vertex.
function result
Success or failure of the operation.

Q3PolyLine_New


( TQ3GeometryObject ) Q3PolyLine_New (
    const TQ3PolyLineData *polylineData
);
Discussion

Create a new polyline geometry object.

Parameter Descriptions
polylineData
Data describing a polyline.
function result
Reference to a new Polyline geometry object, or NULL on failure.

Q3PolyLine_SetData


( TQ3Status ) Q3PolyLine_SetData (
    TQ3GeometryObject polyLine,
    const TQ3PolyLineData *polyLineData
);
Discussion

Modify a PolyLine object by supplying a full new set of data.

Parameter Descriptions
polyLine
A PolyLine object.
polyLineData
Data describing a PolyLine.
function result
Success or failure of the operation.

Q3PolyLine_SetSegmentAttributeSet


( TQ3Status ) Q3PolyLine_SetSegmentAttributeSet (
    TQ3GeometryObject polyLine,
    TQ3Uns32 index,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a polyline segment.

Parameter Descriptions
polyLine
The polyline to update.
index
The index of the segment to update.
attributeSet
The new attribute set for the polyline segment.
function result
Success or failure of the operation.

Q3PolyLine_SetVertexAttributeSet


( TQ3Status ) Q3PolyLine_SetVertexAttributeSet (
    TQ3GeometryObject polyLine,
    TQ3Uns32 index,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a polyline vertex.

Parameter Descriptions
polyLine
The polyline to update.
index
The index of the vertex to update.
attributeSet
The new attribute set for the polyline vertex.
function result
Success or failure of the operation.

Q3PolyLine_SetVertexPosition


( TQ3Status ) Q3PolyLine_SetVertexPosition (
    TQ3GeometryObject polyLine,
    TQ3Uns32 index,
    const TQ3Point3D *position
);
Discussion

Set the position of a polyline vertex.

Parameter Descriptions
polyLine
The polyline to update.
index
The index of the vertex to update.
position
The new position for the polyline vertex.
function result
Success or failure of the operation.

Q3PolyLine_Submit


( TQ3Status ) Q3PolyLine_Submit (
    const TQ3PolyLineData *polyLineData,
    TQ3ViewObject view
);
Discussion

Submits a PolyLine for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
polyLineData
Data describing a PolyLine.
view
A view object.
function result
Success or failure of the operation.

Q3Polygon_EmptyData


( TQ3Status ) Q3Polygon_EmptyData (
    TQ3PolygonData *polygonData
);
Discussion

Release memory allocated by Q3Polygon_GetData.

Parameter Descriptions
polygonData
Data describing a Polygon, previously obtained with Q3Polygon_GetData.
function result
Success or failure of the operation.

Q3Polygon_GetData


( TQ3Status ) Q3Polygon_GetData (
    TQ3GeometryObject polygon,
    TQ3PolygonData *polygonData
);
Discussion

Get the data of a Polygon object.

This function may allocate memory, which should be freed using Q3Polygon_EmptyData.

Parameter Descriptions
polygon
A Polygon object.
polygonData
Receives data describing the Polygon object.
function result
Success or failure of the operation.

Q3Polygon_GetVertexAttributeSet


( TQ3Status ) Q3Polygon_GetVertexAttributeSet (
    TQ3GeometryObject polygon,
    TQ3Uns32 index,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a vertex in a polygon object.

Parameter Descriptions
polygon
A polygon object.
index
A 0-based index into the array of vertices of the polygon.
attributeSet
Receives a new reference to the attribute set, or NULL.
function result
Success or failure of the operation.

Q3Polygon_GetVertexPosition


( TQ3Status ) Q3Polygon_GetVertexPosition (
    TQ3GeometryObject polygon,
    TQ3Uns32 index,
    TQ3Point3D *point
);
Discussion

Get the 3D position of a vertex of a polygon object.

Parameter Descriptions
polygon
A polygon object.
index
A 0-based index into the array of vertices of the polygon.
point
Receives the position of the vertex.
function result
Success or failure of the operation.

Q3Polygon_New


( TQ3GeometryObject ) Q3Polygon_New (
    const TQ3PolygonData *polygonData
);
Discussion

Create a new polygon geometry object.

Parameter Descriptions
polygonData
Data describing a polygon.
function result
Reference to a new Polygon geometry object, or NULL on failure.

Q3Polygon_SetData


( TQ3Status ) Q3Polygon_SetData (
    TQ3GeometryObject polygon,
    const TQ3PolygonData *polygonData
);
Discussion

Modify a polygon object by supplying a full new set of data.

Parameter Descriptions
polygon
A polygon object.
polygonData
Data describing a polygon.
function result
Success or failure of the operation.

Q3Polygon_SetVertexAttributeSet


( TQ3Status ) Q3Polygon_SetVertexAttributeSet (
    TQ3GeometryObject polygon,
    TQ3Uns32 index,
    TQ3AttributeSet attributeSet
);
Discussion

Change the attribute set of a vertex in a polygon object.

Parameter Descriptions
polygon
A polygon object.
index
A 0-based index into the array of vertices of the polygon.
attributeSet
New attribute set for the vertex.
function result
Success or failure of the operation.

Q3Polygon_SetVertexPosition


( TQ3Status ) Q3Polygon_SetVertexPosition (
    TQ3GeometryObject polygon,
    TQ3Uns32 index,
    const TQ3Point3D *point
);
Discussion

Change the 3D position of a vertex of a polygon object.

Parameter Descriptions
polygon
A polygon object.
index
A 0-based index into the array of vertices of the polygon.
point
New position of the vertex.
function result
Success or failure of the operation.

Q3Polygon_Submit


( TQ3Status ) Q3Polygon_Submit (
    const TQ3PolygonData *polygonData,
    TQ3ViewObject view
);
Discussion

Submits a polygon for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
polygonData
Data describing a polygon.
view
A view object.
function result
Success or failure of the operation.

Q3Polyhedron_EmptyData


( TQ3Status ) Q3Polyhedron_EmptyData (
    TQ3PolyhedronData *polyhedronData
);
Discussion

Release memory allocated by Q3Polyhedron_GetData.

Parameter Descriptions
polyhedronData
Data describing a Polyhedron, previously obtained with Q3Polyhedron_GetData.
function result
Success or failure of the operation.

Q3Polyhedron_GetData


( TQ3Status ) Q3Polyhedron_GetData (
    TQ3GeometryObject polyhedron,
    TQ3PolyhedronData *polyhedronData
);
Discussion

Get the data of a Polyhedron object.

This function may allocate memory, which should be freed using Q3Polyhedron_EmptyData.

Parameter Descriptions
polyhedron
A Polyhedron object.
polyhedronData
Receives data describing the Polyhedron object.
function result
Success or failure of the operation.

Q3Polyhedron_GetEdgeData


( TQ3Status ) Q3Polyhedron_GetEdgeData (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 edgeIndex,
    TQ3PolyhedronEdgeData *edgeData
);
Discussion

Get the data of a polyhedron edge.

Parameter Descriptions
polyhedron
The polyhedron to query.
edgeIndex
The index of the edge to query.
edgeData
Receives the data of the edge.
function result
Success or failure of the operation.

Q3Polyhedron_GetTriangleData


( TQ3Status ) Q3Polyhedron_GetTriangleData (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 triangleIndex,
    TQ3PolyhedronTriangleData *triangleData
);
Discussion

Get the data of a polyhedron triangle.

Parameter Descriptions
polyhedron
The polyhedron to query.
triangleIndex
The index of the triangle to query.
triangleData
Receives the data of the triangle.
function result
Success or failure of the operation.

Q3Polyhedron_GetVertexAttributeSet


( TQ3Status ) Q3Polyhedron_GetVertexAttributeSet (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 index,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the position of a polyhedron vertex.

Parameter Descriptions
polyhedron
The polyhedron to query.
index
The index of the vertex to query.
attributeSet
Receives the attribute set of the vertex.
function result
Success or failure of the operation.

Q3Polyhedron_GetVertexPosition


( TQ3Status ) Q3Polyhedron_GetVertexPosition (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 index,
    TQ3Point3D *point
);
Discussion

Get the position of a polyhedron vertex.

Parameter Descriptions
polyhedron
The polyhedron to query.
index
The index of the vertex to query.
point
Receives the position of the vertex.
function result
Success or failure of the operation.

Q3Polyhedron_New


( TQ3GeometryObject ) Q3Polyhedron_New (
    const TQ3PolyhedronData *polyhedronData
);
Discussion

Create a new polyhedron geometry object.

Parameter Descriptions
polyhedronData
Data describing a polyhedron.
function result
Reference to a new Polyhedron geometry object, or NULL on failure.

Q3Polyhedron_SetData


( TQ3Status ) Q3Polyhedron_SetData (
    TQ3GeometryObject polyhedron,
    const TQ3PolyhedronData *polyhedronData
);
Discussion

Modify a polyhedron object by supplying a full new set of data.

Parameter Descriptions
polyhedron
A polyhedron object.
polyhedronData
Data describing a polyhedron.
function result
Success or failure of the operation.

Q3Polyhedron_SetEdgeData


( TQ3Status ) Q3Polyhedron_SetEdgeData (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 edgeIndex,
    const TQ3PolyhedronEdgeData *edgeData
);
Discussion

Set the data of a polyhedron edge.

Parameter Descriptions
polyhedron
The polyhedron to update.
edgeIndex
The index of the edge to update.
edgeData
The new data for the edge.
function result
Success or failure of the operation.

Q3Polyhedron_SetTriangleData


( TQ3Status ) Q3Polyhedron_SetTriangleData (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 triangleIndex,
    const TQ3PolyhedronTriangleData *triangleData
);
Discussion

Set the data of a polyhedron triangle.

Parameter Descriptions
polyhedron
The polyhedron to update.
triangleIndex
The index of the triangle to update.
triangleData
The new data for the triangle.
function result
Success or failure of the operation.

Q3Polyhedron_SetVertexAttributeSet


( TQ3Status ) Q3Polyhedron_SetVertexAttributeSet (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 index,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a polyhedron vertex.

Parameter Descriptions
polyhedron
The polyhedron to update.
index
The index of the vertex to update.
attributeSet
The new attribute set for the vertex.
function result
Success or failure of the operation.

Q3Polyhedron_SetVertexPosition


( TQ3Status ) Q3Polyhedron_SetVertexPosition (
    TQ3GeometryObject polyhedron,
    TQ3Uns32 index,
    const TQ3Point3D *point
);
Discussion

Set the position of a polyhedron vertex.

Parameter Descriptions
polyhedron
The polyhedron to update.
index
The index of the vertex to update.
point
The new position for the vertex.
function result
Success or failure of the operation.

Q3Polyhedron_Submit


( TQ3Status ) Q3Polyhedron_Submit (
    const TQ3PolyhedronData *polyhedronData,
    TQ3ViewObject view
);
Discussion

Submits a polyhedron for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
polyhedronData
Data describing a polyhedron.
view
A view object.
function result
Success or failure of the operation.

Q3Torus_EmptyData


( TQ3Status ) Q3Torus_EmptyData (
    TQ3TorusData *torusData
);
Discussion

Release memory allocated by Q3Torus_GetData.

Parameter Descriptions
torusData
Data describing a Torus, previously obtained with Q3Torus_GetData.
function result
Success or failure of the operation.

Q3Torus_GetData


( TQ3Status ) Q3Torus_GetData (
    TQ3GeometryObject torus,
    TQ3TorusData *torusData
);
Discussion

Get the data of a Torus object.

This function may allocate memory, which should be freed using Q3Torus_EmptyData.

Parameter Descriptions
torus
A Torus object.
torusData
Receives data describing the Torus object.
function result
Success or failure of the operation.

Q3Torus_GetMajorRadius


( TQ3Status ) Q3Torus_GetMajorRadius (
    TQ3GeometryObject torus,
    TQ3Vector3D *majorRadius
);
Discussion

Get the major radius vector of a Torus object.

Parameter Descriptions
torus
The Torus object.
majorRadius
Receives the major radius vector.
function result
Success or failure of the operation.

Q3Torus_GetMinorRadius


( TQ3Status ) Q3Torus_GetMinorRadius (
    TQ3GeometryObject torus,
    TQ3Vector3D *minorRadius
);
Discussion

Get the minor radius vector of a Torus object.

Parameter Descriptions
torus
The Torus object.
minorRadius
Receives the minor radius vector.
function result
Success or failure of the operation.

Q3Torus_GetOrientation


( TQ3Status ) Q3Torus_GetOrientation (
    TQ3GeometryObject torus,
    TQ3Vector3D *orientation
);
Discussion

Get the orientation vector of a torus.

Parameter Descriptions
torus
A torus object.
orientation
Receives the orientation vector of the torus.
function result
Success or failure of the operation.

Q3Torus_GetOrigin


( TQ3Status ) Q3Torus_GetOrigin (
    TQ3GeometryObject torus,
    TQ3Point3D *origin
);
Discussion

Get the origin of a Torus object.

Parameter Descriptions
torus
The Torus object.
origin
Receives the origin.
function result
Success or failure of the operation.

Q3Torus_GetRatio


( TQ3Status ) Q3Torus_GetRatio (
    TQ3GeometryObject torus,
    float *ratio
);
Discussion

Get the ratio of a torus.

Parameter Descriptions
torus
The torus to query.
ratio
Receives the ratio of the torus.
function result
Success or failure of the operation.

Q3Torus_New


( TQ3GeometryObject ) Q3Torus_New (
    const TQ3TorusData *torusData
);
Discussion

Create a new torus geometry object.

If you pass NULL, you will get a default torus with orientation (1, 0, 0), major axis (0, 1, 0), minor axis (0, 0, 1), origin (0, 0, 0), and ratio 1. This behavior was not present in QuickDraw 3D.

Parameter Descriptions
torusData
Data describing a torus, or NULL.
function result
Reference to a new Torus geometry object, or NULL on failure.

Q3Torus_SetData


( TQ3Status ) Q3Torus_SetData (
    TQ3GeometryObject torus,
    const TQ3TorusData *torusData
);
Discussion

Modify a torus object by supplying a full new set of data.

Parameter Descriptions
torus
A torus object.
torusData
Data describing a torus.
function result
Success or failure of the operation.

Q3Torus_SetMajorRadius


( TQ3Status ) Q3Torus_SetMajorRadius (
    TQ3GeometryObject torus,
    const TQ3Vector3D *majorRadius
);
Discussion

Change the major radius vector of a Torus object.

Parameter Descriptions
torus
The Torus object.
majorRadius
New major radius vector.
function result
Success or failure of the operation.

Q3Torus_SetMinorRadius


( TQ3Status ) Q3Torus_SetMinorRadius (
    TQ3GeometryObject torus,
    const TQ3Vector3D *minorRadius
);
Discussion

Change the minor radius vector of a Torus object.

Parameter Descriptions
torus
The Torus object.
minorRadius
New minor radius vector.
function result
Success or failure of the operation.

Q3Torus_SetOrientation


( TQ3Status ) Q3Torus_SetOrientation (
    TQ3GeometryObject torus,
    const TQ3Vector3D *orientation
);
Discussion

Change the orientation vector of a torus object.

Parameter Descriptions
torus
A torus object.
orientation
New orientation vector for the torus.
function result
Success or failure of the operation.

Q3Torus_SetOrigin


( TQ3Status ) Q3Torus_SetOrigin (
    TQ3GeometryObject torus,
    const TQ3Point3D *origin
);
Discussion

Change the origin of a torus object.

Parameter Descriptions
torus
The torus object.
origin
The new origin.
function result
Success or failure of the operation.

Q3Torus_SetRatio


( TQ3Status ) Q3Torus_SetRatio (
    TQ3GeometryObject torus,
    float ratio
);
Discussion

Set the ratio of a torus.

Parameter Descriptions
torus
The torus to update.
ratio
The new ratio for the torus.
function result
Success or failure of the operation.

Q3Torus_Submit


( TQ3Status ) Q3Torus_Submit (
    const TQ3TorusData *torusData,
    TQ3ViewObject view
);
Discussion

Submits a torus for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
torusData
Data describing a torus.
view
A view object.
function result
Success or failure of the operation.

Q3TriGrid_EmptyData


( TQ3Status ) Q3TriGrid_EmptyData (
    TQ3TriGridData *triGridData
);
Discussion

Release memory allocated by Q3TriGrid_GetData.

Parameter Descriptions
triGridData
Data describing a TriGrid, previously obtained with Q3TriGrid_GetData.
function result
Success or failure of the operation.

Q3TriGrid_GetData


( TQ3Status ) Q3TriGrid_GetData (
    TQ3GeometryObject triGrid,
    TQ3TriGridData *triGridData
);
Discussion

Get the data of a TriGrid object.

This function may allocate memory, which should be freed using Q3TriGrid_EmptyData.

Parameter Descriptions
triGrid
A TriGrid object.
triGridData
Receives data describing the TriGrid object.
function result
Success or failure of the operation.

Q3TriGrid_GetFacetAttributeSet


( TQ3Status ) Q3TriGrid_GetFacetAttributeSet (
    TQ3GeometryObject triGrid,
    TQ3Uns32 faceIndex,
    TQ3AttributeSet *facetAttributeSet
);
Discussion

Get the attribute set of a trigrid face.

Parameter Descriptions
triGrid
The trigrid to query.
faceIndex
The index of the face to query.
facetAttributeSet
Receives the attribute set of the trigrid face.
function result
Success or failure of the operation.

Q3TriGrid_GetVertexAttributeSet


( TQ3Status ) Q3TriGrid_GetVertexAttributeSet (
    TQ3GeometryObject triGrid,
    TQ3Uns32 rowIndex,
    TQ3Uns32 columnIndex,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a trigrid vertex.

Parameter Descriptions
triGrid
The trigrid to query.
rowIndex
The row index of the vertex to query.
columnIndex
The column index of the vertex to query.
attributeSet
Receives the attribute set of the trigrid vertex.
function result
Success or failure of the operation.

Q3TriGrid_GetVertexPosition


( TQ3Status ) Q3TriGrid_GetVertexPosition (
    TQ3GeometryObject triGrid,
    TQ3Uns32 rowIndex,
    TQ3Uns32 columnIndex,
    TQ3Point3D *position
);
Discussion

Get the position of a trigrid vertex.

Parameter Descriptions
triGrid
The trigrid to query.
rowIndex
The row index of the vertex to query.
columnIndex
The column index of the vertex to query.
position
Receives the position of the trigrid vertex.
function result
Success or failure of the operation.

Q3TriGrid_New


( TQ3GeometryObject ) Q3TriGrid_New (
    const TQ3TriGridData *triGridData
);
Discussion

Create a new TriGrid geometry object.

Parameter Descriptions
triGridData
Data describing a TriGrid.
function result
Reference to a new TriGrid geometry object, or NULL on failure.

Q3TriGrid_SetData


( TQ3Status ) Q3TriGrid_SetData (
    TQ3GeometryObject triGrid,
    const TQ3TriGridData *triGridData
);
Discussion

Modify a TriGrid object by supplying a full new set of data.

Parameter Descriptions
triGrid
A TriGrid object.
triGridData
Data describing a TriGrid.
function result
Success or failure of the operation.

Q3TriGrid_SetFacetAttributeSet


( TQ3Status ) Q3TriGrid_SetFacetAttributeSet (
    TQ3GeometryObject triGrid,
    TQ3Uns32 faceIndex,
    TQ3AttributeSet facetAttributeSet
);
Discussion

Set the attribute set of a trigrid face.

Parameter Descriptions
triGrid
The trigrid to update.
faceIndex
The index of the face to update.
facetAttributeSet
The new attribute set for the trigrid face.
function result
Success or failure of the operation.

Q3TriGrid_SetVertexAttributeSet


( TQ3Status ) Q3TriGrid_SetVertexAttributeSet (
    TQ3GeometryObject triGrid,
    TQ3Uns32 rowIndex,
    TQ3Uns32 columnIndex,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a trigrid vertex.

Parameter Descriptions
triGrid
The trigrid to update.
rowIndex
The row index of the vertex to update.
columnIndex
The column index of the vertex to update.
attributeSet
The new attribute set for the trigrid vertex.
function result
Success or failure of the operation.

Q3TriGrid_SetVertexPosition


( TQ3Status ) Q3TriGrid_SetVertexPosition (
    TQ3GeometryObject triGrid,
    TQ3Uns32 rowIndex,
    TQ3Uns32 columnIndex,
    const TQ3Point3D *position
);
Discussion

Set the position of a trigrid vertex.

Parameter Descriptions
triGrid
The trigrid to update.
rowIndex
The row index of the vertex to update.
columnIndex
The column index of the vertex to update.
position
The new position for the trigrid vertex.
function result
Success or failure of the operation.

Q3TriGrid_Submit


( TQ3Status ) Q3TriGrid_Submit (
    const TQ3TriGridData *triGridData,
    TQ3ViewObject view
);
Discussion

Submits a TriGrid for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
triGridData
Data describing a TriGrid.
view
A view object.
function result
Success or failure of the operation.

Q3TriMesh_EmptyData


( TQ3Status ) Q3TriMesh_EmptyData (
    TQ3TriMeshData *triMeshData
);
Discussion

Release memory allocated by Q3TriMesh_GetData.

Parameter Descriptions
triMeshData
Data describing a TriMesh, previously obtained with Q3TriMesh_GetData.
function result
Success or failure of the operation.

Q3TriMesh_GetData


( TQ3Status ) Q3TriMesh_GetData (
    TQ3GeometryObject triMesh,
    TQ3TriMeshData *triMeshData
);
Discussion

Get the data of a TriMesh object.

This function may allocate memory, which should be freed using Q3TriMesh_EmptyData.

Parameter Descriptions
triMesh
A TriMesh object.
triMeshData
Receives data describing the TriMesh object.
function result
Success or failure of the operation.

Q3TriMesh_LockData


( TQ3Status ) Q3TriMesh_LockData (
    TQ3GeometryObject triMesh,
    TQ3Boolean readOnly,
    TQ3TriMeshData **triMeshData
);
Discussion

Lock a Trimesh for direct access.

Returns a pointer to the internal TQ3TriMeshData for a TriMesh, allowing direct access without the need to copy TriMesh data out of and back in to Quesa.

The readOnly flag should be used to indicate if the application needs to make changes to the TriMesh data, or if the pointer should be considered const.

When the application no longer needs access to the TriMesh data, it must unlock the TriMesh with Q3TriMesh_UnlockData. Changes to the TriMesh data may not be relayed to renderers until the TriMesh has been unlocked.

This function is not available in QD3D.

Parameter Descriptions
triMesh
The TriMesh to lock.
readOnly
Indicates if the returned data is read-only.
triMeshData
Receives a pointer to the TQ3TriMeshData for the TriMesh.
function result
Success or failure of the operation.

Q3TriMesh_MakeTriangleStrip


Compute a triangle strip.
( TQ3Status ) Q3TriMesh_MakeTriangleStrip (
    TQ3Uns32 inNumTriangles,
    const TQ3Uns32* inTriangles,
    TQ3Uns32* outStripLength,
    TQ3Uns32** outStrip
);
Discussion

Although this function does not take a TriMesh as a parameter, it is grouped with TriMesh functions because Quesa's OpenGL renderer currently only uses triangle strips with TriMeshes.

Also see the triangle strip element functions in QuesaCustomElements.h.

When you are finished with the data returned in the outStrip parameter, free it using Q3Memory_Free.

This function is not available in QD3D.

Parameter Descriptions
inNumTriangles
Number of triangles.
inTriangles
Point indices for the triangles. The length of this array should be 3 * inNumTriangles.
outStripLength
Receives number of indices in outStrip.
outStrip
Receives pointer to array of point indices in the strip. You are responsible for freeing this memory with Q3Memory_Free.
function result
Success or failure of the operation.

Q3TriMesh_New


( TQ3GeometryObject ) Q3TriMesh_New (
    const TQ3TriMeshData *triMeshData
);
Discussion

Create a new TriMesh geometry object.

If you wish, you can set the isEmpty flag in the bBox field, and Quesa will compute the bounding box.

Parameter Descriptions
triMeshData
Data describing a TriMesh.
function result
Reference to a new TriMesh geometry object, or NULL on failure.

Q3TriMesh_Optimize


Modify a TriMesh, if needed, for efficient use by the interactive renderer.

( TQ3GeometryObject ) Q3TriMesh_Optimize (
    TQ3GeometryObject inTriMesh
);
Discussion

See discussion of Q3TriMesh_OptimizeData for the optimizations that are performed. If no optimizations are needed, NULL is returned.

This function is not available in QD3D.

Parameter Descriptions
inTriMesh
A TriMesh geometry.
function result
A TriMesh or NULL.

Q3TriMesh_OptimizeData


Modify TriMesh data, if needed, for efficient use by the interactive renderer.

( TQ3Status ) Q3TriMesh_OptimizeData (
    const TQ3TriMeshData* inData,
    TQ3TriMeshData* outData,
    TQ3Boolean* outDidChange
);
Discussion

This operation modifies TriMesh data so that:

  1. Face normals exist.
  2. Vertex normals exist.
  3. If Face colors exist, then vertex colors exist.
If face normals do not already exist, they will be computed by cross products of edges. The orientation will be assumed to be counterclockwise.

If vertex normals do not already exist, they will be derived from face normals. When a vertex belongs to faces with different normals, the vertex will be duplicated.

If a color attribute (diffuse, transparent, or specular) exists on faces but not vertices, it will be converted to a vertex attribute, duplicating vertices when needed.

If no optimization is needed, outDidChange will return kQ3False and outData will be cleared to zero. If optimization was performed, indicated by outDidChange being kQ3True, then you are responsible for calling Q3TriMesh_EmptyData on the outData structure when you are done with it.

The time it takes to perform the optimization depends on the numbers of vertices, faces, edges, and attributes in the TriMesh. However, determining whether optimization is needed is quick, as it depends only on the number of attribute types.

This function is not available in QD3D.

Parameter Descriptions
inData
TriMesh data.
outData
Receives new TriMesh data, if outDidChange is true.
outDidChange
Receives a flag indicating whether new data was created.
function result
Success or failure of the operation.

Q3TriMesh_SetData


( TQ3Status ) Q3TriMesh_SetData (
    TQ3GeometryObject triMesh,
    const TQ3TriMeshData *triMeshData
);
Discussion

Modify a TriMesh object by supplying a full new set of data.

If you wish, you can set the isEmpty flag in the bBox field, and Quesa will compute the bounding box.

Parameter Descriptions
triMesh
A TriMesh object.
triMeshData
Data describing a TriMesh.
function result
Success or failure of the operation.

Q3TriMesh_Submit


( TQ3Status ) Q3TriMesh_Submit (
    const TQ3TriMeshData *triMeshData,
    TQ3ViewObject view
);
Discussion

Submits a TriMesh for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
triMeshData
Data describing a TriMesh.
view
A view object.
function result
Success or failure of the operation.

Q3TriMesh_UnlockData


( TQ3Status ) Q3TriMesh_UnlockData (
    TQ3GeometryObject triMesh
);
Discussion

Unlocks a TriMesh previously locked with Q3TriMesh_LockData.

This function is not available in QD3D.

Parameter Descriptions
triMesh
The TriMesh to unlock.
function result
Success or failure of the operation.

Q3Triangle_EmptyData


( TQ3Status ) Q3Triangle_EmptyData (
    TQ3TriangleData *triangleData
);
Discussion

Release memory allocated by Q3Triangle_GetData.

Parameter Descriptions
triangleData
Data describing a Triangle, previously obtained with Q3Triangle_GetData.
function result
Success or failure of the operation.

Q3Triangle_GetData


( TQ3Status ) Q3Triangle_GetData (
    TQ3GeometryObject triangle,
    TQ3TriangleData *triangleData
);
Discussion

Get the data of a Triangle object.

This function may allocate memory, which should be freed using Q3Triangle_EmptyData.

Parameter Descriptions
triangle
A Triangle object.
triangleData
Receives data describing the Triangle object.
function result
Success or failure of the operation.

Q3Triangle_GetVertexAttributeSet


( TQ3Status ) Q3Triangle_GetVertexAttributeSet (
    TQ3GeometryObject triangle,
    TQ3Uns32 index,
    TQ3AttributeSet *attributeSet
);
Discussion

Get the attribute set of a triangle vertex.

Parameter Descriptions
triangle
The triangle to query.
index
The index of the vertex to query.
attributeSet
Receives the attribute set of the triangle vertex.
function result
Success or failure of the operation.

Q3Triangle_GetVertexPosition


( TQ3Status ) Q3Triangle_GetVertexPosition (
    TQ3GeometryObject triangle,
    TQ3Uns32 index,
    TQ3Point3D *point
);
Discussion

Get the position of a triangle vertex.

Parameter Descriptions
triangle
The triangle to query.
index
The index of the vertex to query.
point
Receives the position of the triangle vertex.
function result
Success or failure of the operation.

Q3Triangle_New


( TQ3GeometryObject ) Q3Triangle_New (
    const TQ3TriangleData *triangleData
);
Discussion

Create a new triangle geometry object.

Parameter Descriptions
triangleData
Data describing a triangle.
function result
Reference to a new Triangle geometry object, or NULL on failure.

Q3Triangle_SetData


( TQ3Status ) Q3Triangle_SetData (
    TQ3GeometryObject triangle,
    const TQ3TriangleData *triangleData
);
Discussion

Modify a triangle object by supplying a full new set of data.

Parameter Descriptions
triangle
A triangle object.
triangleData
Data describing a triangle.
function result
Success or failure of the operation.

Q3Triangle_SetVertexAttributeSet


( TQ3Status ) Q3Triangle_SetVertexAttributeSet (
    TQ3GeometryObject triangle,
    TQ3Uns32 index,
    TQ3AttributeSet attributeSet
);
Discussion

Set the attribute set of a triangle vertex.

Parameter Descriptions
triangle
The triangle to update.
index
The index of the vertex to update.
attributeSet
The new attribute set for the triangle vertex.
function result
Success or failure of the operation.

Q3Triangle_SetVertexPosition


( TQ3Status ) Q3Triangle_SetVertexPosition (
    TQ3GeometryObject triangle,
    TQ3Uns32 index,
    const TQ3Point3D *point
);
Discussion

Set the position of a triangle vertex.

Parameter Descriptions
triangle
The triangle to update.
index
The index of the vertex to update.
point
The new position for the triangle vertex.
function result
Success or failure of the operation.

Q3Triangle_Submit


( TQ3Status ) Q3Triangle_Submit (
    const TQ3TriangleData *triangleData,
    TQ3ViewObject view
);
Discussion

Submits a triangle for drawing, picking, bounding, or writing in immediate mode.

This function should only be called in a submitting loop.

Parameter Descriptions
triangleData
Data describing a triangle.
view
A view object.
function result
Success or failure of the operation.

Typedefs


TQ3MeshComponent


typedef struct OpaqueTQ3MeshComponent           *TQ3MeshComponent;
Discussion

Opaque pointer representing a connected component of a Mesh.


TQ3MeshContour


typedef struct OpaqueTQ3MeshContour             *TQ3MeshContour;
Discussion

Opaque pointer representing a contour of a Mesh, one of the closed paths that bounds a face.


TQ3MeshEdge


typedef struct OpaqueTQ3MeshEdge                *TQ3MeshEdge;
Discussion

Opaque pointer representing an edge of a Mesh, a straight line segment that connects two vertices.


TQ3MeshFace


typedef struct OpaqueTQ3MeshFace                *TQ3MeshFace;
Discussion

Opaque pointer representing a face of a Mesh. This is a polygonal figure, normally planar, which may contain holes.


TQ3MeshVertex


typedef struct OpaqueTQ3MeshVertex              *TQ3MeshVertex;
Discussion

Opaque pointer representing a vertex of a Mesh.


TQ3PolyhedronEdge


typedef TQ3Uns32                                TQ3PolyhedronEdge;
Discussion

A combination of masks of type TQ3PolyhedronEdgeMasks indicating which edges of a triangle are to be rendered.

Structs


TQ3BoxData


typedef struct TQ3BoxData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 orientation;
    TQ3Vector3D                                 majorAxis;
    TQ3Vector3D                                 minorAxis;
    TQ3AttributeSet                             *faceAttributeSet;
    TQ3AttributeSet                             boxAttributeSet;
} TQ3BoxData;
Discussion

Data describing the state of a box object.

Field Descriptions
origin
Origin of the box (one of the corners).
orientation
Orientation vector of the box.
majorAxis
Major axis of the box.
minorAxis
Minor axis of the box.
faceAttributeSet
Array of attribute set objects for the 6 faces. This field may be NULL, or individual sets in the array may be NULL.
boxAttributeSet
Attribute set object holding attributes that apply to all of the faces. May be NULL.

TQ3ConeData


typedef struct TQ3ConeData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 orientation;
    TQ3Vector3D                                 majorRadius;
    TQ3Vector3D                                 minorRadius;
    float                                       uMin;
    float                                       uMax;
    float                                       vMin;
    float                                       vMax;
    TQ3EndCap                                   caps;
    TQ3AttributeSet                             interiorAttributeSet;
    TQ3AttributeSet                             faceAttributeSet;
    TQ3AttributeSet                             bottomAttributeSet;
    TQ3AttributeSet                             coneAttributeSet;
} TQ3ConeData;
Discussion

Data describing the state of a cone object. The orientation, major radius, and minor radius vectors need not be orthogonal, though they should be independent. Normally these vectors (in that order) should form a right-handed system. If they form a left-handed system, then the cone is "inside out", i.e., the front face is inside.

The values uMin, uMax, vMin, and vMax allow partial cones, e.g., a cone with a wedge cut out of it or with its tip cut off. This feature was not implemented in QuickDraw 3D. See the discussion of TQ3EllipseData for notes on the interpretation of uMin and uMax.

If vMax < 1, so that the tip is cut off, the top disk is considered part of an interior face, rather than a top cap.

Field Descriptions
origin
The center of the base of the cone.
orientation
Vector from the origin to the tip of the cone.
majorRadius
A vector from the origin to a point on the perimeter of the base.
minorRadius
A vector from the origin to a point on the perimeter of the base.
uMin
Minimum value of the u parameter, which goes around the base. Typically 0.
uMax
Maximum value of the u parameter, which goes around the base. Typically 1.
vMin
Minimum value of the v parameter, which goes from base to tip. Typically 0.
vMax
Minimum value of the v parameter, which goes from base to tip. Typically 1.
caps
End cap masks, determining whether there is a bottom cap, and in the case of partial cones, determining whether there is an interior face.
interiorAttributeSet
Interior attributes. Unused by QD3D.
faceAttributeSet
Attributes that affect the face but not the bottom. May be NULL.
bottomAttributeSet
Attributes that affect the bottom end cap. May be NULL.
coneAttributeSet
Attributes for all parts of the cone. May be NULL.

TQ3CylinderData


typedef struct TQ3CylinderData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 orientation;
    TQ3Vector3D                                 majorRadius;
    TQ3Vector3D                                 minorRadius;
    float                                       uMin;
    float                                       uMax;
    float                                       vMin;
    float                                       vMax;
    TQ3EndCap                                   caps;
    TQ3AttributeSet                             interiorAttributeSet;
    TQ3AttributeSet                             topAttributeSet;
    TQ3AttributeSet                             faceAttributeSet;
    TQ3AttributeSet                             bottomAttributeSet;
    TQ3AttributeSet                             cylinderAttributeSet;
} TQ3CylinderData;
Discussion

Data describing the state of a cylinder object. The orientation, major radius, and minor radius vectors need not be orthogonal, though they should be independent. Ordinarily, the vectors (orientation, major axis, minor axis) should form a left-handed coordinate system. If they form a left-handed system, then the cylinder is "inside out", i.e., the front face is inside.

The values uMin, uMax, vMin, and vMax allow partial cylinders, e.g., a cylinder with a wedge cut out of it. This feature was not implemented in QuickDraw 3D. See the discussion of TQ3EllipseData for notes on the interpretation of uMin and uMax.

Field Descriptions
origin
The center of the base of the cylinder.
orientation
Vector from the origin to the center of the opposite end.
majorRadius
A vector from the origin to a point on the perimeter of the base.
minorRadius
A vector from the origin to a point on the perimeter of the base.
uMin
Starting value of the u parameter, which goes around the base counterclockwise. Typically 0.
uMax
Ending value of the u parameter, which goes around the base counterclockwise. Typically 1.
vMin
Minimum value of the v parameter, which goes from the base to the other end. Typically 0.
vMax
Maximum value of the v parameter, which goes from the base to the other end. Typically 1.
caps
End cap masks, determining whether the cylinder is closed on one end, the other, or both.
interiorAttributeSet
Interior attributes. May be NULL. Unused by QD3D.
topAttributeSet
Attributes that affect the top end cap. May be NULL.
faceAttributeSet
Attributes that affect the face but not the bottom or top. May be NULL.
bottomAttributeSet
Attributes that affect the bottom end cap. May be NULL.
cylinderAttributeSet
Attributes for all parts of the cylinder. May be NULL.

TQ3DiskData


typedef struct TQ3DiskData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 majorRadius;
    TQ3Vector3D                                 minorRadius;
    float                                       uMin;
    float                                       uMax;
    float                                       vMin;
    float                                       vMax;
    TQ3AttributeSet                             diskAttributeSet;
} TQ3DiskData;
Discussion

Data describing the state of a disk object (a filled ellipse). The major radius and minor radius vectors need not be orthogonal, though they should be independent. The direction of the front face is the cross product of the major and minor axes.

The values uMin, uMax, vMin, and vMax allow partial disks, e.g., a slice of pie (partial range of u values) or a washer (partial range of v values). This feature was never implemented in QuickDraw 3D, although it was planned. See the discussion of TQ3EllipseData for notes on the interpretation of uMin and uMax.

The u and v limits here do not have anything to do with the uv parametrization used by shaders.

Field Descriptions
origin
The center of the disk.
majorRadius
A vector from the origin to a point on the perimeter of the disk.
minorRadius
A vector from the origin to a point on the perimeter of the disk.
uMin
Starting value of the u parameter, which goes around the perimeter counterclockwise. Typically 0, must be in the range [0, 1].
uMax
Ending value of the u parameter, which goes around the perimeter counterclockwise. Typically 1, must be in the range [0, 1].
vMin
Minimum value of the v parameter, which goes from the perimeter to the origin. Typically 0, must be in the range [0, 1].
vMax
Maximum value of the v parameter, which goes from the perimeter to the origin. Typically 1, must be in the range [0, 1].
diskAttributeSet
Attributes for the disk. May be NULL.

TQ3EllipseData


typedef struct TQ3EllipseData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 majorRadius;
    TQ3Vector3D                                 minorRadius;
    float                                       uMin;
    float                                       uMax;
    TQ3AttributeSet                             ellipseAttributeSet;
} TQ3EllipseData;
Discussion

Data describing the state of an ellipse. The major radius and minor radius vectors need not be orthogonal, though they should be independent.

You can make a partial ellipse by using values other than 0 and 1 for the uMin and uMax fields. The ellipse travels counterclockwise from the uMin to the uMax value. It is permissible for uMin to be greater than uMax. For example, if uMin = 7/8 and uMax = 1/8, then the ellipse covers a range of 45 degrees, including the zero angle.

Field Descriptions
origin
Center of the ellipse.
majorRadius
A vector from the origin to a point on the curve.
minorRadius
Another vector from the origin to a point on the curve.
uMin
Starting value of the u parameter. Typically 0.
uMax
Ending value of the u parameter. Typically 1.
ellipseAttributeSet
Attributes for the ellipse. May be NULL.

TQ3EllipsoidData


typedef struct TQ3EllipsoidData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 orientation;
    TQ3Vector3D                                 majorRadius;
    TQ3Vector3D                                 minorRadius;
    float                                       uMin;
    float                                       uMax;
    float                                       vMin;
    float                                       vMax;
    TQ3EndCap                                   caps;
    TQ3AttributeSet                             interiorAttributeSet;
    TQ3AttributeSet                             ellipsoidAttributeSet;
} TQ3EllipsoidData;
Discussion

Data describing the state of an ellipsoid. The major axis, minor axis, and orientation vectors need not be orthogonal, but should be independent, i.e., not coplanar.

The ellipsoid can be expressed by a parametric equation

f(u,v) = origin - cos(πv)orientation + sin(πv)(cos(2πu)majorRadius + sin(2πu)minorRadius)

where u and v range from 0 to 1.

The values uMin, uMax, vMin, and vMax allow partial ellipsoids, e.g., an ellipsoid with a wedge cut out of it. Partial ellipsoids were not implemented in QuickDraw 3D.

Field Descriptions
origin
Center of the ellipsoid.
orientation
A vector from the origin to a point on the ellipsoid.
majorRadius
A vector from the origin to a point on the ellipsoid.
minorRadius
A vector from the origin to a point on the ellipsoid.
uMin
Minimum value of the u parameter, which goes around the perimeter (the ellipse determined by the major and minor axes). Typically 0.
uMax
Maximum value of the u parameter. Typically 1.
vMin
Minimum value of the v parameter, which goes from the south pole (origin - orientation) to the north pole (origin + orientation). Typically 0.
vMax
Minimum value of the v parameter. Typically 1.
caps
Style of caps to be used on partial ellipsoids.
interiorAttributeSet
Interior attributes, used for end or interior caps. May be NULL.
ellipsoidAttributeSet
Attributes for the ellipsoid surface. May be NULL.

TQ3GeneralPolygonContourData


typedef struct TQ3GeneralPolygonContourData {
    TQ3Uns32                                    numVertices;
    TQ3Vertex3D                                 *vertices;
} TQ3GeneralPolygonContourData;
Discussion

An ordered list of vertices forming a contour of a general polygon. Used within the TQ3GeneralPolygonData structure.

Field Descriptions
numVertices
Number of vertices. Must be at least 3.
vertices
Array of vertices.

TQ3GeneralPolygonData


typedef struct TQ3GeneralPolygonData {
    TQ3Uns32                                    numContours;
    TQ3GeneralPolygonContourData                *contours;
    TQ3GeneralPolygonShapeHint                  shapeHint;
    TQ3AttributeSet                             generalPolygonAttributeSet;
} TQ3GeneralPolygonData;
Discussion

Data describing a general polygon. A general polygon is a closed figure defined by one or more coplanar closed curves called contours. If there are holes, the even-odd rule determines which parts are inside.

Field Descriptions
numContours
Number of contours in the following array. Must be at least 1.
contours
Array of contours.
shapeHint
Information about the shape of the general polygon, which may be used by the renderer to optimize drawing.
generalPolygonAttributeSet
Set of attributes for the polygon. May be NULL.

TQ3LineData


typedef struct TQ3LineData {
    TQ3Vertex3D                                 vertices[2];
    TQ3AttributeSet                             lineAttributeSet;
} TQ3LineData;
Discussion

Data describing a line.

Field Descriptions
vertices
Array of two vertices, the ends of the line.
lineAttributeSet
Set of attributes for the line. May be NULL.

TQ3MarkerData


typedef struct TQ3MarkerData {
    TQ3Point3D                                  location;
    TQ3Int32                                    xOffset;
    TQ3Int32                                    yOffset;
    TQ3Bitmap                                   bitmap;
    TQ3AttributeSet                             markerAttributeSet;
} TQ3MarkerData;
Discussion

Data describing a bitmap marker, a 2-dimensional image drawn on top of a scene at a specified location.

Field Descriptions
location
Location of the marker, in local coordinates.
xOffset
Horizontal offset from the location to the upper left corner of the marker, in pixels.
yOffset
Vertical offset from the location to the upper left corner of the marker, in pixels.
bitmap
A bitmap. Each bit corresponds to a pixel in the image.
markerAttributeSet
Marker attributes, which can for instance modify the color or transparency of the 1 bits. May be NULL.

TQ3MeshContourData


typedef struct TQ3MeshContourData {
    TQ3Uns32                                    numVertices;
    TQ3Uns32                                    *vertexIndices;
} TQ3MeshContourData;
Discussion

Data describing a contour within a mesh face.

Note that a TQ3MeshContourData is an external data structure for use with the Q3Mesh_Set/Get/EmptyData functions. In contrast, a TQ3MeshContour is a pointer to an opaque internal data structure, which is most likely not a TQ3MeshContourData.

This structure is not available in QD3D.

Field Descriptions
numVertices
Number of vertices. Must be at least 3.
vertexIndices
Indices of the vertices of the contour.

TQ3MeshCornerData


typedef struct TQ3MeshCornerData {
    TQ3Uns32                                    numFaces;
    TQ3Uns32                                *faceIndices;
    TQ3AttributeSet                             cornerAttributeSet;
} TQ3MeshCornerData;
Discussion

Data describing a corner for a mesh vertex.

Note that a TQ3MeshCornerData is an external data structure for use with the Q3Mesh_Set/Get/EmptyData functions.

This structure is not available in QD3D.

Field Descriptions
numFaces
Number of faces. Must be at least 1.
faceIndices
Indices of the faces.
cornerAttributeSet
Set of attributes for the corner. Should not be NULL.

TQ3MeshData


typedef struct TQ3MeshData {
    TQ3Uns32                  numVertices;
    TQ3MeshVertexData              *vertices;
    TQ3Uns32                  numEdges;
    TQ3MeshEdgeData                *edges;
    TQ3Uns32                  numFaces;
    TQ3MeshFaceData                *faces;
    TQ3AttributeSet                meshAttributeSet;
} TQ3MeshData;
Discussion

Data describing a mesh.

Note that a TQ3MeshData is an external data structure for use with the Q3Mesh_Set/Get/EmptyData functions.

This structure is not available in QD3D.

Field Descriptions
numVertices
Number of vertices in the following array.
vertices
Pointer to array of vertices of the mesh.
numEdges
Number of edges in the following array. May be 0 if you do not want to specify any edges.
edges
Pointer to an array of edges. May be NULL if you also specify 0 for numEdges.
numFaces
Number of faces in the mesh.
faces
Pointer to an array of faces.
meshAttributeSet
Set of attributes for the mesh. May be NULL.

TQ3MeshEdgeData


typedef struct TQ3MeshEdgeData {
    TQ3Uns32                                    vertexIndices[2];
    TQ3AttributeSet                             edgeAttributeSet;
} TQ3MeshEdgeData;
Discussion

Data describing an edge within a mesh. Used within the TQ3MeshData structure.

Note that a TQ3MeshEdgeData is an external data structure for use with the Q3Mesh_Set/Get/EmptyData functions. In contrast, a TQ3MeshEdge is a pointer to an opaque internal data structure, which is most likely not a TQ3MeshEdgeData.

This structure is not available in QD3D.

Field Descriptions
vertexIndices
Indices of the two vertices that are ends of the edge.
edgeAttributeSet
Set of attributes for the edge. May be NULL.

TQ3MeshFaceData


typedef struct TQ3MeshFaceData {
    TQ3Uns32                                    numContours;
    TQ3MeshContourData                          *contours;
    TQ3AttributeSet                             faceAttributeSet;
} TQ3MeshFaceData;
Discussion

Data describing a face within a mesh.

Note that a TQ3MeshFaceData is an external data structure for use with the Q3Mesh_Set/Get/EmptyData functions. In contrast, a TQ3MeshFace is a pointer to an opaque internal data structure, which is most likely not a TQ3MeshFaceData.

This structure is not available in QD3D.

Field Descriptions
numContours
Number of contours. Must be at least 1.
contours
Contours of the face.
faceAttributeSet
Set of attributes for the face. May be NULL.

TQ3MeshIterator


typedef struct TQ3MeshIterator {
    void                                        *var1;
    void                                        *var2;
    void                                        *var3;
    struct {
    void                                    *field1;
    char                                    field2[4];
    
} var4;
Discussion

This structure is used for iterating through various parts of a Mesh. You should consider it opaque, because the meanings of the fields are not documented.


TQ3MeshVertexData


typedef struct TQ3MeshVertexData {
    TQ3Point3D                                  point;
    TQ3Uns32                                    numCorners;
    TQ3MeshCornerData                           *corners;
    TQ3AttributeSet                             attributeSet;
} TQ3MeshVertexData;
Discussion

Data describing a vertex within a mesh.

Note that a TQ3MeshVertexData is an external data structure for use with the Q3Mesh_Set/Get/EmptyData functions. In contrast, a TQ3MeshVertex is a pointer to an opaque internal data structure, which is most likely not a TQ3MeshVertexData.

This structure is not available in QD3D.

Field Descriptions
point
Location of the vertex.
numCorners
Number of corners in the following array. May be 0 if you do not want to specify any corners.
corners
Pointer to an array of corners. May be NULL if you also specify 0 for numCorners.
attributeSet
Attribute set for the vertex.

TQ3NURBCurveData


typedef struct TQ3NURBCurveData {
    TQ3Uns32                                    order;
    TQ3Uns32                                    numPoints;
    TQ3RationalPoint4D                          *controlPoints;
    float                                       *knots;
    TQ3AttributeSet                             curveAttributeSet;
} TQ3NURBCurveData;
Discussion

Data defining a NURBS curve, a 3-dimensional curve represented by a nonuniform rational B-spline equation.

Field Descriptions
order
The order of the curve, one more than the degree of the polynomials defining the curve. Must be greater than one.
numPoints
Number of control points. Must be greater than or equal to the order.
controlPoints
Array of rational 4-dimensional control points.
knots
Array of knots that define the curve. The number of knots must equal the sum of order and numPoints. The values must be nondecreasing.
curveAttributeSet
Set of attributes for the curve. May be NULL.

TQ3NURBPatchData


typedef struct TQ3NURBPatchData {
    TQ3Uns32                                    uOrder;
    TQ3Uns32                                    vOrder;
    TQ3Uns32                                    numRows;
    TQ3Uns32                                    numColumns;
    TQ3RationalPoint4D                          *controlPoints;
    float                                       *uKnots;
    float                                       *vKnots;
    TQ3Uns32                                    numTrimLoops;
    TQ3NURBPatchTrimLoopData                    *trimLoops;
    TQ3AttributeSet                             patchAttributeSet;
} TQ3NURBPatchData;
Discussion

Data describing a NURB patch, a surface defined by a ratio of B-spline surfaces.

Field Descriptions
uOrder
Order of the NURB patch in the u parametric direction. The order is one greater than the degree of the polynomial functions involved, and must be greater than one.
vOrder
Order of the NURB patch in the v parametric direction. The order is one greater than the degree of the polynomial functions involved, and must be greater than one.
numRows
Number of control points in the u parametric equation. Must be greater than 1.
numColumns
Number of control points in the v parametric equation. Must be greater than 1.
controlPoints
Array of rational 4-dimensional control points. They are listed first in the direction of increasing u and then in the direction of increasing v. The number of control points is numRows times numColumns.
uKnots
Array of knots in the u parametric direction. The number of these knots is the sum of uOrder and numColumns. The values must be nondecreasing.
vKnots
Array of knots in the v parametric direction. The number of these knots is the sum of vOrder and numRows. The values must be nondecreasing.
numTrimLoops
Number of trim loops in the following array. Currently this should be 0.
trimLoops
Pointer to an array of trim loop structures. Currently this should be NULL.
patchAttributeSet
Set of attributes for the patch. May be NULL.

TQ3NURBPatchTrimCurveData


typedef struct TQ3NURBPatchTrimCurveData {
    TQ3Uns32                                    order;
    TQ3Uns32                                    numPoints;
    TQ3RationalPoint3D                          *controlPoints;
    float                                       *knots;
} TQ3NURBPatchTrimCurveData;
Discussion

Curve that trims a NURB patch. Note that this is similar to TQ3NURBCurveData, but lacks an attribute set.

Field Descriptions
order
The order of the curve, one more than the degree of the polynomials defining the curve. Must be greater than one.
numPoints
Number of control points. Must be greater than or equal to the order.
controlPoints
Array of rational 4-dimensional control points.
knots
Array of knots that define the curve. The number of knots must equal the sum of order and numPoints. The values must be nondecreasing.

TQ3NURBPatchTrimLoopData


typedef struct TQ3NURBPatchTrimLoopData {
    TQ3Uns32                                    numTrimCurves;
    TQ3NURBPatchTrimCurveData                   *trimCurves;
} TQ3NURBPatchTrimLoopData;
Discussion

Data describing curves that trim a NURB patch.

Field Descriptions
numTrimCurves
Number of curves in the following array.
trimCurves
Pointer to an array of curves.

TQ3PixmapMarkerData


typedef struct TQ3PixmapMarkerData {
    TQ3Point3D                                  position;
    TQ3Int32                                    xOffset;
    TQ3Int32                                    yOffset;
    TQ3StoragePixmap                            pixmap;
    TQ3AttributeSet                             pixmapMarkerAttributeSet;
} TQ3PixmapMarkerData;
Discussion

Data describing a pixmap marker, a 2-dimensional color image drawn on top of a scene at a specified location.

Field Descriptions
position
Location of the marker, in local coordinates.
xOffset
Horizontal offset from the position to the upper left corner of the marker, in pixels.
yOffset
Vertical offset from the position to the upper left corner of the marker, in pixels.
pixmap
A pixmap.
pixmapMarkerAttributeSet
A set of attributes for the marker. May be NULL.

TQ3PointData


typedef struct TQ3PointData {
    TQ3Point3D                                  point;
    TQ3AttributeSet                             pointAttributeSet;
} TQ3PointData;
Discussion

Data describing a point object.

Field Descriptions
point
Location of the point.
pointAttributeSet
Set of attributes for the point. May be NULL.

TQ3PolyLineData


typedef struct TQ3PolyLineData {
    TQ3Uns32                                    numVertices;
    TQ3Vertex3D                                 *vertices;
    TQ3AttributeSet                             *segmentAttributeSet;
    TQ3AttributeSet                             polyLineAttributeSet;
} TQ3PolyLineData;
Discussion

Data describing a connected but not closed curve made up of several straight line segments.

Field Descriptions
numVertices
Number of vertices of the curve (one more than the number of line segments). Must be at least 2.
vertices
Pointer to an array of vertices.
segmentAttributeSet
Pointer to an array of attribute sets, one for each segment. If you do not want to assign attributes to any segment, this pointer may be NULL.
polyLineAttributeSet
Set of attributes for the whole curve. May be NULL.

TQ3PolygonData


typedef struct TQ3PolygonData {
    TQ3Uns32                                    numVertices;
    TQ3Vertex3D                                 *vertices;
    TQ3AttributeSet                             polygonAttributeSet;
} TQ3PolygonData;
Discussion

Data describing a simple convex polygon.

Field Descriptions
numVertices
Number of vertices. Must be at least 3.
vertices
Pointer to an array of vertices.
polygonAttributeSet
Set of attributes for the polygon. May be NULL.

TQ3PolyhedronData


typedef struct TQ3PolyhedronData {
    TQ3Uns32                                    numVertices;
    TQ3Vertex3D                                 *vertices;
    TQ3Uns32                                    numEdges;
    TQ3PolyhedronEdgeData                       *edges;
    TQ3Uns32                                    numTriangles;
    TQ3PolyhedronTriangleData                   *triangles;
    TQ3AttributeSet                             polyhedronAttributeSet;
} TQ3PolyhedronData;
Discussion

Data describing a polyhedron.

Field Descriptions
numVertices
Number of vertices in the following array.
vertices
Pointer to array of vertices of the polyhedron.
numEdges
Number of edges in the following array. May be 0 if you do not want to specify any edges.
edges
Pointer to an array of edges. May be NULL if you also specify 0 for numEdges.
numTriangles
Number of triangles (faces) in the polygon.
triangles
Pointer to an array of triangles.
polyhedronAttributeSet
Set of attributes for the polyhedron. May be NULL.

TQ3PolyhedronEdgeData


typedef struct TQ3PolyhedronEdgeData {
    TQ3Uns32                                    vertexIndices[2];
    TQ3Uns32                                    triangleIndices[2];
    TQ3AttributeSet                             edgeAttributeSet;
} TQ3PolyhedronEdgeData;
Discussion

Data describing an edge within a polyhedron.

Field Descriptions
vertexIndices
Indices of the two vertices that are ends of the edge.
triangleIndices
Indices of the two triangles that contain the edge.
edgeAttributeSet
Set of attributes for the edge. May be NULL.

TQ3PolyhedronTriangleData


typedef struct TQ3PolyhedronTriangleData {
    TQ3Uns32                                    vertexIndices[3];
    TQ3PolyhedronEdge                           edgeFlag;
    TQ3AttributeSet                             triangleAttributeSet;
} TQ3PolyhedronTriangleData;
Discussion

Data describing a triangle within a polyhedron.

Field Descriptions
vertexIndices
Indices of the 3 vertices of the triangle.
edgeFlag
Flags indicating which edges of the triangle should be rendered. See TQ3PolyhedronEdgeMasks.
triangleAttributeSet
Set of attributes for the triangle. May be NULL.

TQ3TorusData


typedef struct TQ3TorusData {
    TQ3Point3D                                  origin;
    TQ3Vector3D                                 orientation;
    TQ3Vector3D                                 majorRadius;
    TQ3Vector3D                                 minorRadius;
    float                                       ratio;
    float                                       uMin;
    float                                       uMax;
    float                                       vMin;
    float                                       vMax;
    TQ3EndCap                                   caps;
    TQ3AttributeSet                             interiorAttributeSet;
    TQ3AttributeSet                             torusAttributeSet;
} TQ3TorusData;
Discussion

Data describing a generalized torus. A torus is a surface formed by rotating an ellipse about an axis that is in the same plane as the ellipse but does not pass through the ellipse.

To express the torus as a parametric equation, we first define the elliptical central axis by the equation

axis(u) = cos(2πu) majorRadius + sin(2πu) minorRadius

where majorRadius and minorRadius are independent vectors, and u varies from 0 to 1. Then we define the torus surface by

f(u,v) = origin + axis(u) - sin(2πv) orientation - (cos(2πv) * ratio * |orientation| / |axis(u)|) axis(u)

where v also varies from 0 to 1 and vertical bars indicate length of a vector.

The kind of torus usually encountered in elementary mathematics, with circular cross sections, would be one where the orientation, majorRadius, and minorRadius vectors are mutually orthogonal, where majorRadius and minorRadius have the same length, and where ratio is 1.

The values uMin, uMax, vMin, and vMax allow one to create partial tori, e.g., a torus with a wedge cut out of it. QuickDraw 3D did not implement this feature.

Field Descriptions
origin
Center of rotation.
orientation
Vector whose direction is the axis of rotation, and whose length is the length of the radius of the cross-sectional ellipse in the direction of the axis of rotation.
majorRadius
Vector from the origin to the center of the ellipse.
minorRadius
Vector from the origin to the center of a different cross-sectional ellipse.
ratio
The ratio between the radius of the cross-sectional ellipse in the direction of majorRadius, and the length of orientation.
uMin
Minimum value in the u parametric direction (the long way around.) Normally 0, must be in interval [0, 1].
uMax
Maximum value in the u parametric direction (the long way around.) Normally 1, must be in interval [0, 1].
vMin
Minimum value in the v parametric direction (the short way around.) Normally 0, must be in interval [0, 1].
vMax
Maximum value in the v parametric direction (the short way around.) Normally 1, must be in interval [0, 1].
caps
Cap style. Should be kQ3EndCapNone.

interiorAttributeSet
Interior attribute set. Not currently used.

torusAttributeSet
Overall attribute set.

TQ3TriGridData


typedef struct TQ3TriGridData {
    TQ3Uns32                                    numRows;
    TQ3Uns32                                    numColumns;
    TQ3Vertex3D                                 *vertices;
    TQ3AttributeSet                             *facetAttributeSet;
    TQ3AttributeSet                             triGridAttributeSet;
} TQ3TriGridData;
Discussion

Data describing a TriGrid object. A TriGrid is defined by a grid of points in 3-dimensional space. Each set of 4 adjacent points (in the mth and (m+1)st row and nth and (n+1)st column) defines a quadrilateral that can be subdivided into triangles in 2 natural ways. This subdivision is done in an alternating way, such that the vertex in the first row and first column belongs to two triangles.

Field Descriptions
numRows
Number of rows of vertices. Should be at least 2.
numColumns
Number of columns of vertices. Should be at least 2.
vertices
Pointer to an array of vertices, listed in rectangular order, first by increasing columns and then by increasing rows. The number of vertices should be numRows times numColumns.
facetAttributeSet
Pointer to an array of triangle attributes. May be NULL, but otherwise should point to an array of 2×(numRows-1)×(numColumns-1) attribute sets.
triGridAttributeSet
Set of attributes for the whole TriGrid object. May be NULL.

TQ3TriMeshAttributeData


typedef struct TQ3TriMeshAttributeData {
    TQ3AttributeType                            attributeType;
    void                                        *data;
    char                                        *attributeUseArray;
} TQ3TriMeshAttributeData;
Discussion

A structure holding an array of attribute data of a particular type.

Field Descriptions
attributeType
Type of the attribute.
data
Pointer to an array of attribute data. The number of members in the array is determined by context in the enclosing TQ3TriMeshData structure; for instance, if these are vertex attributes, the number of members is the number of vertices. The size of each member depends on the attribute type.
attributeUseArray
For non-custom attribute types, this must be NULL. For custom attribute types, it can point to an array of 1-byte 0s and 1s, with 1s indicating which items have the custom attribute.

TQ3TriMeshData


typedef struct TQ3TriMeshData {
    TQ3AttributeSet                             triMeshAttributeSet;
    TQ3Uns32                                    numTriangles;
    TQ3TriMeshTriangleData                      *triangles;
    TQ3Uns32                                    numTriangleAttributeTypes;
    TQ3TriMeshAttributeData                     *triangleAttributeTypes;
    TQ3Uns32                                    numEdges;
    TQ3TriMeshEdgeData                          *edges;
    TQ3Uns32                                    numEdgeAttributeTypes;
    TQ3TriMeshAttributeData                     *edgeAttributeTypes;
    TQ3Uns32                                    numPoints;
    TQ3Point3D                                  *points;
    TQ3Uns32                                    numVertexAttributeTypes;
    TQ3TriMeshAttributeData                     *vertexAttributeTypes;
    TQ3BoundingBox                              bBox;
} TQ3TriMeshData;
Discussion

Structure describing a TriMesh object, which is an object composed of vertices, edges, and triangular faces. The main difference between a TriMesh and a Polyhedron is that attribute data for vertices, edges, and faces are not stored in attribute sets, but in arrays of attribute data. This is normally more efficient, so long as you are going to be assigning an attribute to every vertex, or every edge, or every face.

Field Descriptions
triMeshAttributeSet
Set of attributes for the whole object. May be NULL.
numTriangles
Number of triangles in the following array.
triangles
Pointer to an array of triangle data.
numTriangleAttributeTypes
Number of triangle attribute types listed in the following array.
triangleAttributeTypes
Pointer to an array of attribute data for triangles (faces). May be NULL, if numTriangleAttributeTypes is 0.
numEdges
Number of edges in the following array.
edges
Pointer to an array of edge data. If you do not wish to specify any edges, you can set this to NULL, and set numEdges to 0.
numEdgeAttributeTypes
Number of edge attribute types in the following array.
edgeAttributeTypes
Pointer to an array of edge attribute types. May be NULL, provided that numEdgeAttributeTypes is 0.
numPoints
Number of points (vertices).
points
Pointer to an array of points.
numVertexAttributeTypes
Number of vertex attribute types in the following array.
vertexAttributeTypes
Pointer to an array of vertex attribute data. May be NULL, so long as numVertexAttributeTypes is 0.
bBox
Bounding box of the TriMesh.

TQ3TriMeshEdgeData


typedef struct TQ3TriMeshEdgeData {
    TQ3Uns32                                    pointIndices[2];
    TQ3Uns32                                    triangleIndices[2];
} TQ3TriMeshEdgeData;
Discussion

Data defining an edge within a TriMesh.

Field Descriptions
pointIndices
Array of 2 indices into the TriMesh array of points, the ends of the edge.
triangleIndices
Array of 2 indices into the TriMesh array of triangles, the triangles containing the edge.

TQ3TriMeshTriangleData


typedef struct TQ3TriMeshTriangleData {
    TQ3Uns32                                    pointIndices[3];
} TQ3TriMeshTriangleData;
Discussion

Data defining a triangle within a TriMesh.

Field Descriptions
pointIndices
Array of 3 indices into the TriMesh array of points.

TQ3TriangleData


typedef struct TQ3TriangleData {
    TQ3Vertex3D                                 vertices[3];
    TQ3AttributeSet                             triangleAttributeSet;
} TQ3TriangleData;
Discussion

Data defining a single triangle.

Field Descriptions
vertices
The 3 vertices of the triangle.
triangleAttributeSet
Set of attributes for the triangle. May be NULL.

Enumerations


Geometry Property Types


Object properties that may be set on geometries.


enum
{
  kQ3GeometryPropertyNonCartoon          = Q3_OBJECT_TYPE('n', 'c', 'a', 'r')
};
Discussion



Constants

kQ3GeometryPropertyNonCartoon
This property indicates to the cartoon renderer or to the quantized per-pixel lighting mode of the OpenGL renderer that this geometry should be rendered normally.

Data type: TQ3Boolean. Default value: kQ3False.

Nurb Limits


enum {
  kQ3NURBCurveMaxOrder = 16,
  kQ3NURBPatchMaxOrder = 16
};
Discussion

Miscellaneous limits for NURB curves and patches.

Constants

kQ3NURBCurveMaxOrder
Maximum order for NURB curves.
kQ3NURBPatchMaxOrder
Maximum order for NURB patches. Note that this was set to 11 in QD3DGeometry.h, however a Develop article on NURBs indicated it should be 16.

TQ3GeneralPolygonShapeHint


typedef enum TQ3GeneralPolygonShapeHint {
    kQ3GeneralPolygonShapeHintComplex           = 0,
    kQ3GeneralPolygonShapeHintConcave           = 1,
    kQ3GeneralPolygonShapeHintConvex            = 2,
    kQ3GeneralPolygonShapeHintSize32            = 0xFFFFFFFF
} TQ3GeneralPolygonShapeHint;
Discussion

A general polygon has a shape hint that may be used by the renderer to optimize drawing.

Constants

kQ3GeneralPolygonShapeHintComplex
The general polygon has more than one contour, or is self-intersecting, or it is not known whether it is concave or convex.
kQ3GeneralPolygonShapeHintConcave
There is exactly one contour, which is concave.
kQ3GeneralPolygonShapeHintConvex
There is exactly one contour, which is convex.

TQ3PolyhedronEdgeMasks


typedef enum TQ3PolyhedronEdgeMasks {
    kQ3PolyhedronEdgeNone                       = 0,
    kQ3PolyhedronEdge01                         = (1 << 0),
    kQ3PolyhedronEdge12                         = (1 << 1),
    kQ3PolyhedronEdge20                         = (1 << 2),
    kQ3PolyhedronEdgeAll                        = (kQ3PolyhedronEdge01 | kQ3PolyhedronEdge12 | kQ3PolyhedronEdge20),
    kQ3PolyhedronEdgeSize32                     = 0xFFFFFFFF
} TQ3PolyhedronEdgeMasks;
Discussion

These are flags indicating which edges of a polyhedral triangle should be rendered.

Constants

kQ3PolyhedronEdgeNone
No Edge.
kQ3PolyhedronEdge01
Render the edge between vertex 0 and vertex 1.
kQ3PolyhedronEdge12
Render the edge between vertex 1 and vertex 2.
kQ3PolyhedronEdge20
Render the edge between vertex 2 and vertex 0.
kQ3PolyhedronEdgeAll
Render all the edges.

© 1999-2008 Quesa Developers (Last Updated 5/10/2008)