topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-QD3DGeometry.h / h
/*
File: QD3DGeometry.h
Contains: Q3Geometry methods
Version: Technology: Quickdraw 3D 1.6
Release: QuickTime 6.0.2
Copyright: (c) 1995-2001 by Apple Computer, Inc., all rights reserved.
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
ifndef __QD3DGEOMETRY__
define __QD3DGEOMETRY__
ifndef __QD3D__
include <QD3D.h>
endif
ifndef __QD3DSET__
include <QD3DSet.h>
endif
if PRAGMA_ONCE
#pragma once
endif
ifdef __cplusplus
extern "C" {
endif
if PRAGMA_IMPORT
#pragma import on
endif
if PRAGMA_STRUCT_ALIGN
#pragma options align=power
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
endif
if PRAGMA_ENUM_ALWAYSINT
#if defined(__fourbyteints__) && !__fourbyteints__
#define __QD3DGEOMETRY__RESTORE_TWOBYTEINTS
#pragma fourbyteints on
#endif
#pragma enumsalwaysint on
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=int
#elif PRAGMA_ENUM_PACK
#if __option(pack_enums)
#define __QD3DGEOMETRY__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
endif
****************************************************************************
* **
* Geometry Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3ObjectType )
Q3Geometry_GetType (TQ3GeometryObject geometry);
EXTERN_API_C( TQ3Status )
Q3Geometry_GetAttributeSet (TQ3GeometryObject geometry,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Geometry_SetAttributeSet (TQ3GeometryObject geometry,
TQ3AttributeSet attributeSet);
EXTERN_API_C( TQ3Status )
Q3Geometry_Submit (TQ3GeometryObject geometry,
TQ3ViewObject view);
****************************************************************************
* **
* Box Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3BoxData {
TQ3Point3D origin;
TQ3Vector3D orientation;
TQ3Vector3D majorAxis;
TQ3Vector3D minorAxis;
TQ3AttributeSet * faceAttributeSet; /* Ordering : Left, right, */
/* front, back, */
/* top, bottom */
TQ3AttributeSet boxAttributeSet;
};
typedef struct TQ3BoxData TQ3BoxData;
****************************************************************************
* **
* Box Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Box_New (const TQ3BoxData * boxData);
EXTERN_API_C( TQ3Status )
Q3Box_Submit (const TQ3BoxData * boxData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Box_SetData (TQ3GeometryObject box,
const TQ3BoxData * boxData);
EXTERN_API_C( TQ3Status )
Q3Box_GetData (TQ3GeometryObject box,
TQ3BoxData * boxData);
EXTERN_API_C( TQ3Status )
Q3Box_EmptyData (TQ3BoxData * boxData);
EXTERN_API_C( TQ3Status )
Q3Box_SetOrigin (TQ3GeometryObject box,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Box_SetOrientation (TQ3GeometryObject box,
const TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Box_SetMajorAxis (TQ3GeometryObject box,
const TQ3Vector3D * majorAxis);
EXTERN_API_C( TQ3Status )
Q3Box_SetMinorAxis (TQ3GeometryObject box,
const TQ3Vector3D * minorAxis);
EXTERN_API_C( TQ3Status )
Q3Box_GetOrigin (TQ3GeometryObject box,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Box_GetOrientation (TQ3GeometryObject box,
TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Box_GetMajorAxis (TQ3GeometryObject box,
TQ3Vector3D * majorAxis);
EXTERN_API_C( TQ3Status )
Q3Box_GetMinorAxis (TQ3GeometryObject box,
TQ3Vector3D * minorAxis);
EXTERN_API_C( TQ3Status )
Q3Box_GetFaceAttributeSet (TQ3GeometryObject box,
unsigned long faceIndex,
TQ3AttributeSet * faceAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Box_SetFaceAttributeSet (TQ3GeometryObject box,
unsigned long faceIndex,
TQ3AttributeSet faceAttributeSet);
****************************************************************************
* **
* Cone Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
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;
};
typedef struct TQ3ConeData TQ3ConeData;
****************************************************************************
* **
* Cone Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Cone_New (const TQ3ConeData * coneData);
EXTERN_API_C( TQ3Status )
Q3Cone_Submit (const TQ3ConeData * coneData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Cone_SetData (TQ3GeometryObject cone,
const TQ3ConeData * coneData);
EXTERN_API_C( TQ3Status )
Q3Cone_GetData (TQ3GeometryObject cone,
TQ3ConeData * coneData);
EXTERN_API_C( TQ3Status )
Q3Cone_SetOrigin (TQ3GeometryObject cone,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Cone_SetOrientation (TQ3GeometryObject cone,
const TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Cone_SetMajorRadius (TQ3GeometryObject cone,
const TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Cone_SetMinorRadius (TQ3GeometryObject cone,
const TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Cone_GetOrigin (TQ3GeometryObject cone,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Cone_GetOrientation (TQ3GeometryObject cone,
TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Cone_GetMajorRadius (TQ3GeometryObject cone,
TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Cone_GetMinorRadius (TQ3GeometryObject cone,
TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Cone_SetCaps (TQ3GeometryObject cone,
TQ3EndCap caps);
EXTERN_API_C( TQ3Status )
Q3Cone_GetCaps (TQ3GeometryObject cone,
TQ3EndCap * caps);
EXTERN_API_C( TQ3Status )
Q3Cone_SetBottomAttributeSet (TQ3GeometryObject cone,
TQ3AttributeSet bottomAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cone_GetBottomAttributeSet (TQ3GeometryObject cone,
TQ3AttributeSet * bottomAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cone_SetFaceAttributeSet (TQ3GeometryObject cone,
TQ3AttributeSet faceAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cone_GetFaceAttributeSet (TQ3GeometryObject cone,
TQ3AttributeSet * faceAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cone_EmptyData (TQ3ConeData * coneData);
****************************************************************************
* **
* Cylinder Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
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;
};
typedef struct TQ3CylinderData TQ3CylinderData;
****************************************************************************
* **
* Cylinder Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Cylinder_New (const TQ3CylinderData * cylinderData);
EXTERN_API_C( TQ3Status )
Q3Cylinder_Submit (const TQ3CylinderData * cylinderData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetData (TQ3GeometryObject cylinder,
const TQ3CylinderData * cylinderData);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetData (TQ3GeometryObject cylinder,
TQ3CylinderData * cylinderData);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetOrigin (TQ3GeometryObject cylinder,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetOrientation (TQ3GeometryObject cylinder,
const TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetMajorRadius (TQ3GeometryObject cylinder,
const TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetMinorRadius (TQ3GeometryObject cylinder,
const TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetOrigin (TQ3GeometryObject cylinder,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetOrientation (TQ3GeometryObject cylinder,
TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetMajorRadius (TQ3GeometryObject cylinder,
TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetMinorRadius (TQ3GeometryObject cylinder,
TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetCaps (TQ3GeometryObject cylinder,
TQ3EndCap caps);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetCaps (TQ3GeometryObject cylinder,
TQ3EndCap * caps);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetTopAttributeSet (TQ3GeometryObject cylinder,
TQ3AttributeSet topAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetTopAttributeSet (TQ3GeometryObject cylinder,
TQ3AttributeSet * topAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetBottomAttributeSet (TQ3GeometryObject cylinder,
TQ3AttributeSet bottomAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetBottomAttributeSet (TQ3GeometryObject cylinder,
TQ3AttributeSet * bottomAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cylinder_SetFaceAttributeSet (TQ3GeometryObject cylinder,
TQ3AttributeSet faceAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cylinder_GetFaceAttributeSet (TQ3GeometryObject cylinder,
TQ3AttributeSet * faceAttributeSet);
EXTERN_API_C( TQ3Status )
Q3Cylinder_EmptyData (TQ3CylinderData * cylinderData);
****************************************************************************
* **
* Disk Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3DiskData {
TQ3Point3D origin;
TQ3Vector3D majorRadius;
TQ3Vector3D minorRadius;
float uMin;
float uMax;
float vMin;
float vMax;
TQ3AttributeSet diskAttributeSet;
};
typedef struct TQ3DiskData TQ3DiskData;
****************************************************************************
* **
* Disk Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Disk_New (const TQ3DiskData * diskData);
EXTERN_API_C( TQ3Status )
Q3Disk_Submit (const TQ3DiskData * diskData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Disk_SetData (TQ3GeometryObject disk,
const TQ3DiskData * diskData);
EXTERN_API_C( TQ3Status )
Q3Disk_GetData (TQ3GeometryObject disk,
TQ3DiskData * diskData);
EXTERN_API_C( TQ3Status )
Q3Disk_SetOrigin (TQ3GeometryObject disk,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Disk_SetMajorRadius (TQ3GeometryObject disk,
const TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Disk_SetMinorRadius (TQ3GeometryObject disk,
const TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Disk_GetOrigin (TQ3GeometryObject disk,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Disk_GetMajorRadius (TQ3GeometryObject disk,
TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Disk_GetMinorRadius (TQ3GeometryObject disk,
TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Disk_EmptyData (TQ3DiskData * diskData);
****************************************************************************
* **
* Ellipse Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3EllipseData {
TQ3Point3D origin;
TQ3Vector3D majorRadius;
TQ3Vector3D minorRadius;
float uMin;
float uMax;
TQ3AttributeSet ellipseAttributeSet;
};
typedef struct TQ3EllipseData TQ3EllipseData;
****************************************************************************
* **
* Ellipse Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Ellipse_New (const TQ3EllipseData * ellipseData);
EXTERN_API_C( TQ3Status )
Q3Ellipse_Submit (const TQ3EllipseData * ellipseData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Ellipse_SetData (TQ3GeometryObject ellipse,
const TQ3EllipseData * ellipseData);
EXTERN_API_C( TQ3Status )
Q3Ellipse_GetData (TQ3GeometryObject ellipse,
TQ3EllipseData * ellipseData);
EXTERN_API_C( TQ3Status )
Q3Ellipse_SetOrigin (TQ3GeometryObject ellipse,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Ellipse_SetMajorRadius (TQ3GeometryObject ellipse,
const TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipse_SetMinorRadius (TQ3GeometryObject ellipse,
const TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipse_GetOrigin (TQ3GeometryObject ellipse,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Ellipse_GetMajorRadius (TQ3GeometryObject ellipse,
TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipse_GetMinorRadius (TQ3GeometryObject ellipse,
TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipse_EmptyData (TQ3EllipseData * ellipseData);
****************************************************************************
* **
* Ellipsoid Data structures **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3EllipsoidData {
TQ3Point3D origin;
TQ3Vector3D orientation;
TQ3Vector3D majorRadius;
TQ3Vector3D minorRadius;
float uMin;
float uMax;
float vMin;
float vMax;
TQ3EndCap caps;
TQ3AttributeSet interiorAttributeSet;
TQ3AttributeSet ellipsoidAttributeSet;
};
typedef struct TQ3EllipsoidData TQ3EllipsoidData;
****************************************************************************
* **
* Ellipsoid Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Ellipsoid_New (const TQ3EllipsoidData * ellipsoidData);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_Submit (const TQ3EllipsoidData * ellipsoidData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_SetData (TQ3GeometryObject ellipsoid,
const TQ3EllipsoidData * ellipsoidData);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_GetData (TQ3GeometryObject ellipsoid,
TQ3EllipsoidData * ellipsoidData);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_SetOrigin (TQ3GeometryObject ellipsoid,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_SetOrientation (TQ3GeometryObject ellipsoid,
const TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_SetMajorRadius (TQ3GeometryObject ellipsoid,
const TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_SetMinorRadius (TQ3GeometryObject ellipsoid,
const TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_GetOrigin (TQ3GeometryObject ellipsoid,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_GetOrientation (TQ3GeometryObject ellipsoid,
TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_GetMajorRadius (TQ3GeometryObject ellipsoid,
TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_GetMinorRadius (TQ3GeometryObject ellipsoid,
TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Ellipsoid_EmptyData (TQ3EllipsoidData * ellipsoidData);
****************************************************************************
* **
* General Polygon Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
enum TQ3GeneralPolygonShapeHint {
kQ3GeneralPolygonShapeHintComplex = 0,
kQ3GeneralPolygonShapeHintConcave = 1,
kQ3GeneralPolygonShapeHintConvex = 2
};
typedef enum TQ3GeneralPolygonShapeHint TQ3GeneralPolygonShapeHint;
struct TQ3GeneralPolygonContourData {
unsigned long numVertices;
TQ3Vertex3D * vertices;
};
typedef struct TQ3GeneralPolygonContourData TQ3GeneralPolygonContourData;
struct TQ3GeneralPolygonData {
unsigned long numContours;
TQ3GeneralPolygonContourData * contours;
TQ3GeneralPolygonShapeHint shapeHint;
TQ3AttributeSet generalPolygonAttributeSet;
};
typedef struct TQ3GeneralPolygonData TQ3GeneralPolygonData;
****************************************************************************
* **
* General polygon Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3GeneralPolygon_New (const TQ3GeneralPolygonData * generalPolygonData);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_Submit (const TQ3GeneralPolygonData * generalPolygonData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_SetData (TQ3GeometryObject generalPolygon,
const TQ3GeneralPolygonData * generalPolygonData);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_GetData (TQ3GeometryObject polygon,
TQ3GeneralPolygonData * generalPolygonData);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_EmptyData (TQ3GeneralPolygonData * generalPolygonData);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_GetVertexPosition (TQ3GeometryObject generalPolygon,
unsigned long contourIndex,
unsigned long pointIndex,
TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_SetVertexPosition (TQ3GeometryObject generalPolygon,
unsigned long contourIndex,
unsigned long pointIndex,
const TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_GetVertexAttributeSet (TQ3GeometryObject generalPolygon,
unsigned long contourIndex,
unsigned long pointIndex,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_SetVertexAttributeSet (TQ3GeometryObject generalPolygon,
unsigned long contourIndex,
unsigned long pointIndex,
TQ3AttributeSet attributeSet);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_SetShapeHint (TQ3GeometryObject generalPolygon,
TQ3GeneralPolygonShapeHint shapeHint);
EXTERN_API_C( TQ3Status )
Q3GeneralPolygon_GetShapeHint (TQ3GeometryObject generalPolygon,
TQ3GeneralPolygonShapeHint * shapeHint);
****************************************************************************
* **
* Line Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3LineData {
TQ3Vertex3D vertices[2];
TQ3AttributeSet lineAttributeSet;
};
typedef struct TQ3LineData TQ3LineData;
****************************************************************************
* **
* Line Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Line_New (const TQ3LineData * lineData);
EXTERN_API_C( TQ3Status )
Q3Line_Submit (const TQ3LineData * lineData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Line_GetData (TQ3GeometryObject line,
TQ3LineData * lineData);
EXTERN_API_C( TQ3Status )
Q3Line_SetData (TQ3GeometryObject line,
const TQ3LineData * lineData);
EXTERN_API_C( TQ3Status )
Q3Line_GetVertexPosition (TQ3GeometryObject line,
unsigned long index,
TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3Line_SetVertexPosition (TQ3GeometryObject line,
unsigned long index,
const TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3Line_GetVertexAttributeSet (TQ3GeometryObject line,
unsigned long index,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Line_SetVertexAttributeSet (TQ3GeometryObject line,
unsigned long index,
TQ3AttributeSet attributeSet);
EXTERN_API_C( TQ3Status )
Q3Line_EmptyData (TQ3LineData * lineData);
****************************************************************************
* **
* Marker Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3MarkerData {
TQ3Point3D location;
long xOffset;
long yOffset;
TQ3Bitmap bitmap;
TQ3AttributeSet markerAttributeSet;
};
typedef struct TQ3MarkerData TQ3MarkerData;
****************************************************************************
* **
* Marker Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Marker_New (const TQ3MarkerData * markerData);
EXTERN_API_C( TQ3Status )
Q3Marker_Submit (const TQ3MarkerData * markerData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Marker_SetData (TQ3GeometryObject geometry,
const TQ3MarkerData * markerData);
EXTERN_API_C( TQ3Status )
Q3Marker_GetData (TQ3GeometryObject geometry,
TQ3MarkerData * markerData);
EXTERN_API_C( TQ3Status )
Q3Marker_EmptyData (TQ3MarkerData * markerData);
EXTERN_API_C( TQ3Status )
Q3Marker_GetPosition (TQ3GeometryObject marker,
TQ3Point3D * location);
EXTERN_API_C( TQ3Status )
Q3Marker_SetPosition (TQ3GeometryObject marker,
const TQ3Point3D * location);
EXTERN_API_C( TQ3Status )
Q3Marker_GetXOffset (TQ3GeometryObject marker,
long * xOffset);
EXTERN_API_C( TQ3Status )
Q3Marker_SetXOffset (TQ3GeometryObject marker,
long xOffset);
EXTERN_API_C( TQ3Status )
Q3Marker_GetYOffset (TQ3GeometryObject marker,
long * yOffset);
EXTERN_API_C( TQ3Status )
Q3Marker_SetYOffset (TQ3GeometryObject marker,
long yOffset);
EXTERN_API_C( TQ3Status )
Q3Marker_GetBitmap (TQ3GeometryObject marker,
TQ3Bitmap * bitmap);
EXTERN_API_C( TQ3Status )
Q3Marker_SetBitmap (TQ3GeometryObject marker,
const TQ3Bitmap * bitmap);
****************************************************************************
* **
* Mesh Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
typedef struct OpaqueTQ3MeshComponent* TQ3MeshComponent;
typedef struct OpaqueTQ3MeshVertex* TQ3MeshVertex;
typedef struct OpaqueTQ3MeshFace* TQ3MeshFace;
typedef struct OpaqueTQ3MeshEdge* TQ3MeshEdge;
typedef struct OpaqueTQ3MeshContour* TQ3MeshContour;
****************************************************************************
* **
* Mesh Routines **
* **
***************************************************************************
/*
* Constructors
*/
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Mesh_New (void);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_VertexNew (TQ3GeometryObject mesh,
const TQ3Vertex3D * vertex);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_FaceNew (TQ3GeometryObject mesh,
unsigned long numVertices,
const TQ3MeshVertex * vertices,
TQ3AttributeSet attributeSet);
/*
* Destructors
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_VertexDelete (TQ3GeometryObject mesh,
TQ3MeshVertex vertex);
EXTERN_API_C( TQ3Status )
Q3Mesh_FaceDelete (TQ3GeometryObject mesh,
TQ3MeshFace face);
/*
* Methods
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_DelayUpdates (TQ3GeometryObject mesh);
EXTERN_API_C( TQ3Status )
Q3Mesh_ResumeUpdates (TQ3GeometryObject mesh);
EXTERN_API_C( TQ3MeshContour )
Q3Mesh_FaceToContour (TQ3GeometryObject mesh,
TQ3MeshFace containerFace,
TQ3MeshFace face);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_ContourToFace (TQ3GeometryObject mesh,
TQ3MeshContour contour);
/*
* Mesh
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetNumComponents (TQ3GeometryObject mesh,
unsigned long * numComponents);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetNumEdges (TQ3GeometryObject mesh,
unsigned long * numEdges);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetNumVertices (TQ3GeometryObject mesh,
unsigned long * numVertices);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetNumFaces (TQ3GeometryObject mesh,
unsigned long * numFaces);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetNumCorners (TQ3GeometryObject mesh,
unsigned long * numCorners);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetOrientable (TQ3GeometryObject mesh,
TQ3Boolean * orientable);
/*
* Component
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetComponentNumVertices (TQ3GeometryObject mesh,
TQ3MeshComponent component,
unsigned long * numVertices);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetComponentNumEdges (TQ3GeometryObject mesh,
TQ3MeshComponent component,
unsigned long * numEdges);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetComponentBoundingBox (TQ3GeometryObject mesh,
TQ3MeshComponent component,
TQ3BoundingBox * boundingBox);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetComponentOrientable (TQ3GeometryObject mesh,
TQ3MeshComponent component,
TQ3Boolean * orientable);
/*
* Vertex
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetVertexCoordinates (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3Point3D * coordinates);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetVertexIndex (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
unsigned long * index);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetVertexOnBoundary (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3Boolean * onBoundary);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetVertexComponent (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3MeshComponent * component);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetVertexAttributeSet (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Mesh_SetVertexCoordinates (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
const TQ3Point3D * coordinates);
EXTERN_API_C( TQ3Status )
Q3Mesh_SetVertexAttributeSet (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3AttributeSet attributeSet);
/*
* Face
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetFaceNumVertices (TQ3GeometryObject mesh,
TQ3MeshFace face,
unsigned long * numVertices);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetFacePlaneEquation (TQ3GeometryObject mesh,
TQ3MeshFace face,
TQ3PlaneEquation * planeEquation);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetFaceNumContours (TQ3GeometryObject mesh,
TQ3MeshFace face,
unsigned long * numContours);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetFaceIndex (TQ3GeometryObject mesh,
TQ3MeshFace face,
unsigned long * index);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetFaceComponent (TQ3GeometryObject mesh,
TQ3MeshFace face,
TQ3MeshComponent * component);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetFaceAttributeSet (TQ3GeometryObject mesh,
TQ3MeshFace face,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Mesh_SetFaceAttributeSet (TQ3GeometryObject mesh,
TQ3MeshFace face,
TQ3AttributeSet attributeSet);
/*
* Edge
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetEdgeVertices (TQ3GeometryObject mesh,
TQ3MeshEdge edge,
TQ3MeshVertex * vertex1,
TQ3MeshVertex * vertex2);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetEdgeFaces (TQ3GeometryObject mesh,
TQ3MeshEdge edge,
TQ3MeshFace * face1,
TQ3MeshFace * face2);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetEdgeOnBoundary (TQ3GeometryObject mesh,
TQ3MeshEdge edge,
TQ3Boolean * onBoundary);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetEdgeComponent (TQ3GeometryObject mesh,
TQ3MeshEdge edge,
TQ3MeshComponent * component);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetEdgeAttributeSet (TQ3GeometryObject mesh,
TQ3MeshEdge edge,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Mesh_SetEdgeAttributeSet (TQ3GeometryObject mesh,
TQ3MeshEdge edge,
TQ3AttributeSet attributeSet);
/*
* Contour
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetContourFace (TQ3GeometryObject mesh,
TQ3MeshContour contour,
TQ3MeshFace * face);
EXTERN_API_C( TQ3Status )
Q3Mesh_GetContourNumVertices (TQ3GeometryObject mesh,
TQ3MeshContour contour,
unsigned long * numVertices);
/*
* Corner
*/
EXTERN_API_C( TQ3Status )
Q3Mesh_GetCornerAttributeSet (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3MeshFace face,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Mesh_SetCornerAttributeSet (TQ3GeometryObject mesh,
TQ3MeshVertex vertex,
TQ3MeshFace face,
TQ3AttributeSet attributeSet);
/*
* Public Mesh Iterators
*/
endif /* CALL_NOT_IN_CARBON */
struct TQ3MeshIterator {
void * var1;
void * var2;
void * var3;
struct {
void * field1;
char field2[4];
} var4;
};
typedef struct TQ3MeshIterator TQ3MeshIterator;
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3MeshComponent )
Q3Mesh_FirstMeshComponent (TQ3GeometryObject mesh,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshComponent )
Q3Mesh_NextMeshComponent (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_FirstComponentVertex (TQ3MeshComponent component,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_NextComponentVertex (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_FirstComponentEdge (TQ3MeshComponent component,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_NextComponentEdge (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_FirstMeshVertex (TQ3GeometryObject mesh,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_NextMeshVertex (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_FirstMeshFace (TQ3GeometryObject mesh,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_NextMeshFace (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_FirstMeshEdge (TQ3GeometryObject mesh,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_NextMeshEdge (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_FirstVertexEdge (TQ3MeshVertex vertex,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_NextVertexEdge (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_FirstVertexVertex (TQ3MeshVertex vertex,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_NextVertexVertex (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_FirstVertexFace (TQ3MeshVertex vertex,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_NextVertexFace (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_FirstFaceEdge (TQ3MeshFace face,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_NextFaceEdge (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_FirstFaceVertex (TQ3MeshFace face,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_NextFaceVertex (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_FirstFaceFace (TQ3MeshFace face,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_NextFaceFace (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshContour )
Q3Mesh_FirstFaceContour (TQ3MeshFace face,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshContour )
Q3Mesh_NextFaceContour (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_FirstContourEdge (TQ3MeshContour contour,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshEdge )
Q3Mesh_NextContourEdge (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_FirstContourVertex (TQ3MeshContour contour,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshVertex )
Q3Mesh_NextContourVertex (TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_FirstContourFace (TQ3MeshContour contour,
TQ3MeshIterator * iterator);
EXTERN_API_C( TQ3MeshFace )
Q3Mesh_NextContourFace (TQ3MeshIterator * iterator);
define Q3ForEachMeshComponent(m,c,i) \
for ( (c) = Q3Mesh_FirstMeshComponent((m),(i)); \
(c); \
(c) = Q3Mesh_NextMeshComponent((i)) )
define Q3ForEachComponentVertex(c,v,i) \
for ( (v) = Q3Mesh_FirstComponentVertex((c),(i)); \
(v); \
(v) = Q3Mesh_NextComponentVertex((i)) )
define Q3ForEachComponentEdge(c,e,i) \
for ( (e) = Q3Mesh_FirstComponentEdge((c),(i)); \
(e); \
(e) = Q3Mesh_NextComponentEdge((i)) )
define Q3ForEachMeshVertex(m,v,i) \
for ( (v) = Q3Mesh_FirstMeshVertex((m),(i)); \
(v); \
(v) = Q3Mesh_NextMeshVertex((i)) )
define Q3ForEachMeshFace(m,f,i) \
for ( (f) = Q3Mesh_FirstMeshFace((m),(i)); \
(f); \
(f) = Q3Mesh_NextMeshFace((i)) )
define Q3ForEachMeshEdge(m,e,i) \
for ( (e) = Q3Mesh_FirstMeshEdge((m),(i)); \
(e); \
(e) = Q3Mesh_NextMeshEdge((i)) )
define Q3ForEachVertexEdge(v,e,i) \
for ( (e) = Q3Mesh_FirstVertexEdge((v),(i)); \
(e); \
(e) = Q3Mesh_NextVertexEdge((i)) )
define Q3ForEachVertexVertex(v,n,i) \
for ( (n) = Q3Mesh_FirstVertexVertex((v),(i)); \
(n); \
(n) = Q3Mesh_NextVertexVertex((i)) )
define Q3ForEachVertexFace(v,f,i) \
for ( (f) = Q3Mesh_FirstVertexFace((v),(i)); \
(f); \
(f) = Q3Mesh_NextVertexFace((i)) )
define Q3ForEachFaceEdge(f,e,i) \
for ( (e) = Q3Mesh_FirstFaceEdge((f),(i)); \
(e); \
(e) = Q3Mesh_NextFaceEdge((i)) )
define Q3ForEachFaceVertex(f,v,i) \
for ( (v) = Q3Mesh_FirstFaceVertex((f),(i)); \
(v); \
(v) = Q3Mesh_NextFaceVertex((i)) )
define Q3ForEachFaceFace(f,n,i) \
for ( (n) = Q3Mesh_FirstFaceFace((f),(i)); \
(n); \
(n) = Q3Mesh_NextFaceFace((i)) )
define Q3ForEachFaceContour(f,h,i) \
for ( (h) = Q3Mesh_FirstFaceContour((f),(i)); \
(h); \
(h) = Q3Mesh_NextFaceContour((i)) )
define Q3ForEachContourEdge(h,e,i) \
for ( (e) = Q3Mesh_FirstContourEdge((h),(i)); \
(e); \
(e) = Q3Mesh_NextContourEdge((i)) )
define Q3ForEachContourVertex(h,v,i) \
for ( (v) = Q3Mesh_FirstContourVertex((h),(i)); \
(v); \
(v) = Q3Mesh_NextContourVertex((i)) )
define Q3ForEachContourFace(h,f,i) \
for ( (f) = Q3Mesh_FirstContourFace((h),(i)); \
(f); \
(f) = Q3Mesh_NextContourFace((i)) )
****************************************************************************
* **
* Maximum order for NURB Curves **
* **
***************************************************************************
define kQ3NURBCurveMaxOrder 16
****************************************************************************
* **
* NURB Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3NURBCurveData {
unsigned long order;
unsigned long numPoints;
TQ3RationalPoint4D * controlPoints;
float * knots;
TQ3AttributeSet curveAttributeSet;
};
typedef struct TQ3NURBCurveData TQ3NURBCurveData;
****************************************************************************
* **
* NURB Curve Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3NURBCurve_New (const TQ3NURBCurveData * curveData);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_Submit (const TQ3NURBCurveData * curveData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_SetData (TQ3GeometryObject curve,
const TQ3NURBCurveData * nurbCurveData);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_GetData (TQ3GeometryObject curve,
TQ3NURBCurveData * nurbCurveData);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_EmptyData (TQ3NURBCurveData * nurbCurveData);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_SetControlPoint (TQ3GeometryObject curve,
unsigned long pointIndex,
const TQ3RationalPoint4D * point4D);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_GetControlPoint (TQ3GeometryObject curve,
unsigned long pointIndex,
TQ3RationalPoint4D * point4D);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_SetKnot (TQ3GeometryObject curve,
unsigned long knotIndex,
float knotValue);
EXTERN_API_C( TQ3Status )
Q3NURBCurve_GetKnot (TQ3GeometryObject curve,
unsigned long knotIndex,
float * knotValue);
****************************************************************************
* **
* Maximum NURB Patch Order **
* **
***************************************************************************
define kQ3NURBPatchMaxOrder 11
****************************************************************************
* **
* NURB Patch Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3NURBPatchTrimCurveData {
unsigned long order;
unsigned long numPoints;
TQ3RationalPoint3D * controlPoints;
float * knots;
};
typedef struct TQ3NURBPatchTrimCurveData TQ3NURBPatchTrimCurveData;
struct TQ3NURBPatchTrimLoopData {
unsigned long numTrimCurves;
TQ3NURBPatchTrimCurveData * trimCurves;
};
typedef struct TQ3NURBPatchTrimLoopData TQ3NURBPatchTrimLoopData;
struct TQ3NURBPatchData {
unsigned long uOrder;
unsigned long vOrder;
unsigned long numRows;
unsigned long numColumns;
TQ3RationalPoint4D * controlPoints;
float * uKnots;
float * vKnots;
unsigned long numTrimLoops;
TQ3NURBPatchTrimLoopData * trimLoops;
TQ3AttributeSet patchAttributeSet;
};
typedef struct TQ3NURBPatchData TQ3NURBPatchData;
****************************************************************************
* **
* NURB Patch Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3NURBPatch_New (const TQ3NURBPatchData * nurbPatchData);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_Submit (const TQ3NURBPatchData * nurbPatchData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_SetData (TQ3GeometryObject nurbPatch,
const TQ3NURBPatchData * nurbPatchData);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_GetData (TQ3GeometryObject nurbPatch,
TQ3NURBPatchData * nurbPatchData);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_SetControlPoint (TQ3GeometryObject nurbPatch,
unsigned long rowIndex,
unsigned long columnIndex,
const TQ3RationalPoint4D * point4D);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_GetControlPoint (TQ3GeometryObject nurbPatch,
unsigned long rowIndex,
unsigned long columnIndex,
TQ3RationalPoint4D * point4D);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_SetUKnot (TQ3GeometryObject nurbPatch,
unsigned long knotIndex,
float knotValue);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_SetVKnot (TQ3GeometryObject nurbPatch,
unsigned long knotIndex,
float knotValue);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_GetUKnot (TQ3GeometryObject nurbPatch,
unsigned long knotIndex,
float * knotValue);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_GetVKnot (TQ3GeometryObject nurbPatch,
unsigned long knotIndex,
float * knotValue);
EXTERN_API_C( TQ3Status )
Q3NURBPatch_EmptyData (TQ3NURBPatchData * nurbPatchData);
****************************************************************************
* **
* Pixmap Marker Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3PixmapMarkerData {
TQ3Point3D position;
long xOffset;
long yOffset;
TQ3StoragePixmap pixmap;
TQ3AttributeSet pixmapMarkerAttributeSet;
};
typedef struct TQ3PixmapMarkerData TQ3PixmapMarkerData;
****************************************************************************
* **
* Pixmap Marker Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3PixmapMarker_New (const TQ3PixmapMarkerData * pixmapMarkerData);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_Submit (const TQ3PixmapMarkerData * pixmapMarkerData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_SetData (TQ3GeometryObject geometry,
const TQ3PixmapMarkerData * pixmapMarkerData);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_GetData (TQ3GeometryObject geometry,
TQ3PixmapMarkerData * pixmapMarkerData);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_EmptyData (TQ3PixmapMarkerData * pixmapMarkerData);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_GetPosition (TQ3GeometryObject pixmapMarker,
TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_SetPosition (TQ3GeometryObject pixmapMarker,
const TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_GetXOffset (TQ3GeometryObject pixmapMarker,
long * xOffset);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_SetXOffset (TQ3GeometryObject pixmapMarker,
long xOffset);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_GetYOffset (TQ3GeometryObject pixmapMarker,
long * yOffset);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_SetYOffset (TQ3GeometryObject pixmapMarker,
long yOffset);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_GetPixmap (TQ3GeometryObject pixmapMarker,
TQ3StoragePixmap * pixmap);
EXTERN_API_C( TQ3Status )
Q3PixmapMarker_SetPixmap (TQ3GeometryObject pixmapMarker,
const TQ3StoragePixmap * pixmap);
****************************************************************************
* **
* Point Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3PointData {
TQ3Point3D point;
TQ3AttributeSet pointAttributeSet;
};
typedef struct TQ3PointData TQ3PointData;
****************************************************************************
* **
* Point Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Point_New (const TQ3PointData * pointData);
EXTERN_API_C( TQ3Status )
Q3Point_Submit (const TQ3PointData * pointData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Point_GetData (TQ3GeometryObject point,
TQ3PointData * pointData);
EXTERN_API_C( TQ3Status )
Q3Point_SetData (TQ3GeometryObject point,
const TQ3PointData * pointData);
EXTERN_API_C( TQ3Status )
Q3Point_EmptyData (TQ3PointData * pointData);
EXTERN_API_C( TQ3Status )
Q3Point_SetPosition (TQ3GeometryObject point,
const TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3Point_GetPosition (TQ3GeometryObject point,
TQ3Point3D * position);
****************************************************************************
* **
* Polygon Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3PolygonData {
unsigned long numVertices;
TQ3Vertex3D * vertices;
TQ3AttributeSet polygonAttributeSet;
};
typedef struct TQ3PolygonData TQ3PolygonData;
****************************************************************************
* **
* Polygon Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Polygon_New (const TQ3PolygonData * polygonData);
EXTERN_API_C( TQ3Status )
Q3Polygon_Submit (const TQ3PolygonData * polygonData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Polygon_SetData (TQ3GeometryObject polygon,
const TQ3PolygonData * polygonData);
EXTERN_API_C( TQ3Status )
Q3Polygon_GetData (TQ3GeometryObject polygon,
TQ3PolygonData * polygonData);
EXTERN_API_C( TQ3Status )
Q3Polygon_EmptyData (TQ3PolygonData * polygonData);
EXTERN_API_C( TQ3Status )
Q3Polygon_GetVertexPosition (TQ3GeometryObject polygon,
unsigned long index,
TQ3Point3D * point);
EXTERN_API_C( TQ3Status )
Q3Polygon_SetVertexPosition (TQ3GeometryObject polygon,
unsigned long index,
const TQ3Point3D * point);
EXTERN_API_C( TQ3Status )
Q3Polygon_GetVertexAttributeSet (TQ3GeometryObject polygon,
unsigned long index,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Polygon_SetVertexAttributeSet (TQ3GeometryObject polygon,
unsigned long index,
TQ3AttributeSet attributeSet);
****************************************************************************
* **
* Polyhedron Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
enum TQ3PolyhedronEdgeMasks {
kQ3PolyhedronEdgeNone = 0,
kQ3PolyhedronEdge01 = 1 << 0,
kQ3PolyhedronEdge12 = 1 << 1,
kQ3PolyhedronEdge20 = 1 << 2,
kQ3PolyhedronEdgeAll = kQ3PolyhedronEdge01 | kQ3PolyhedronEdge12 | kQ3PolyhedronEdge20
};
typedef enum TQ3PolyhedronEdgeMasks TQ3PolyhedronEdgeMasks;
typedef unsigned long TQ3PolyhedronEdge;
struct TQ3PolyhedronEdgeData {
unsigned long vertexIndices[2];
unsigned long triangleIndices[2];
TQ3AttributeSet edgeAttributeSet;
};
typedef struct TQ3PolyhedronEdgeData TQ3PolyhedronEdgeData;
struct TQ3PolyhedronTriangleData {
unsigned long vertexIndices[3];
TQ3PolyhedronEdge edgeFlag;
TQ3AttributeSet triangleAttributeSet;
};
typedef struct TQ3PolyhedronTriangleData TQ3PolyhedronTriangleData;
struct TQ3PolyhedronData {
unsigned long numVertices;
TQ3Vertex3D * vertices;
unsigned long numEdges;
TQ3PolyhedronEdgeData * edges;
unsigned long numTriangles;
TQ3PolyhedronTriangleData * triangles;
TQ3AttributeSet polyhedronAttributeSet;
};
typedef struct TQ3PolyhedronData TQ3PolyhedronData;
****************************************************************************
* **
* Polyhedron Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Polyhedron_New (const TQ3PolyhedronData * polyhedronData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_Submit (const TQ3PolyhedronData * polyhedronData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_SetData (TQ3GeometryObject polyhedron,
const TQ3PolyhedronData * polyhedronData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_GetData (TQ3GeometryObject polyhedron,
TQ3PolyhedronData * polyhedronData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_EmptyData (TQ3PolyhedronData * polyhedronData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_SetVertexPosition (TQ3GeometryObject polyhedron,
unsigned long index,
const TQ3Point3D * point);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_GetVertexPosition (TQ3GeometryObject polyhedron,
unsigned long index,
TQ3Point3D * point);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_SetVertexAttributeSet (TQ3GeometryObject polyhedron,
unsigned long index,
TQ3AttributeSet attributeSet);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_GetVertexAttributeSet (TQ3GeometryObject polyhedron,
unsigned long index,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_GetTriangleData (TQ3GeometryObject polyhedron,
unsigned long triangleIndex,
TQ3PolyhedronTriangleData * triangleData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_SetTriangleData (TQ3GeometryObject polyhedron,
unsigned long triangleIndex,
const TQ3PolyhedronTriangleData * triangleData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_GetEdgeData (TQ3GeometryObject polyhedron,
unsigned long edgeIndex,
TQ3PolyhedronEdgeData * edgeData);
EXTERN_API_C( TQ3Status )
Q3Polyhedron_SetEdgeData (TQ3GeometryObject polyhedron,
unsigned long edgeIndex,
const TQ3PolyhedronEdgeData * edgeData);
****************************************************************************
* **
* PolyLine Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3PolyLineData {
unsigned long numVertices;
TQ3Vertex3D * vertices;
TQ3AttributeSet * segmentAttributeSet;
TQ3AttributeSet polyLineAttributeSet;
};
typedef struct TQ3PolyLineData TQ3PolyLineData;
****************************************************************************
* **
* PolyLine Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3PolyLine_New (const TQ3PolyLineData * polylineData);
EXTERN_API_C( TQ3Status )
Q3PolyLine_Submit (const TQ3PolyLineData * polyLineData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3PolyLine_SetData (TQ3GeometryObject polyLine,
const TQ3PolyLineData * polyLineData);
EXTERN_API_C( TQ3Status )
Q3PolyLine_GetData (TQ3GeometryObject polyLine,
TQ3PolyLineData * polyLineData);
EXTERN_API_C( TQ3Status )
Q3PolyLine_EmptyData (TQ3PolyLineData * polyLineData);
EXTERN_API_C( TQ3Status )
Q3PolyLine_GetVertexPosition (TQ3GeometryObject polyLine,
unsigned long index,
TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3PolyLine_SetVertexPosition (TQ3GeometryObject polyLine,
unsigned long index,
const TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3PolyLine_GetVertexAttributeSet (TQ3GeometryObject polyLine,
unsigned long index,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3PolyLine_SetVertexAttributeSet (TQ3GeometryObject polyLine,
unsigned long index,
TQ3AttributeSet attributeSet);
EXTERN_API_C( TQ3Status )
Q3PolyLine_GetSegmentAttributeSet (TQ3GeometryObject polyLine,
unsigned long index,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3PolyLine_SetSegmentAttributeSet (TQ3GeometryObject polyLine,
unsigned long index,
TQ3AttributeSet attributeSet);
****************************************************************************
* **
* Torus Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
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;
};
typedef struct TQ3TorusData TQ3TorusData;
****************************************************************************
* **
* Torus Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Torus_New (const TQ3TorusData * torusData);
EXTERN_API_C( TQ3Status )
Q3Torus_Submit (const TQ3TorusData * torusData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Torus_SetData (TQ3GeometryObject torus,
const TQ3TorusData * torusData);
EXTERN_API_C( TQ3Status )
Q3Torus_GetData (TQ3GeometryObject torus,
TQ3TorusData * torusData);
EXTERN_API_C( TQ3Status )
Q3Torus_SetOrigin (TQ3GeometryObject torus,
const TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Torus_SetOrientation (TQ3GeometryObject torus,
const TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Torus_SetMajorRadius (TQ3GeometryObject torus,
const TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Torus_SetMinorRadius (TQ3GeometryObject torus,
const TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Torus_SetRatio (TQ3GeometryObject torus,
float ratio);
EXTERN_API_C( TQ3Status )
Q3Torus_GetOrigin (TQ3GeometryObject torus,
TQ3Point3D * origin);
EXTERN_API_C( TQ3Status )
Q3Torus_GetOrientation (TQ3GeometryObject torus,
TQ3Vector3D * orientation);
EXTERN_API_C( TQ3Status )
Q3Torus_GetMajorRadius (TQ3GeometryObject torus,
TQ3Vector3D * majorRadius);
EXTERN_API_C( TQ3Status )
Q3Torus_GetMinorRadius (TQ3GeometryObject torus,
TQ3Vector3D * minorRadius);
EXTERN_API_C( TQ3Status )
Q3Torus_GetRatio (TQ3GeometryObject torus,
float * ratio);
EXTERN_API_C( TQ3Status )
Q3Torus_EmptyData (TQ3TorusData * torusData);
****************************************************************************
* **
* Triangle Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3TriangleData {
TQ3Vertex3D vertices[3];
TQ3AttributeSet triangleAttributeSet;
};
typedef struct TQ3TriangleData TQ3TriangleData;
****************************************************************************
* **
* Triangle Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3Triangle_New (const TQ3TriangleData * triangleData);
EXTERN_API_C( TQ3Status )
Q3Triangle_Submit (const TQ3TriangleData * triangleData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3Triangle_SetData (TQ3GeometryObject triangle,
const TQ3TriangleData * triangleData);
EXTERN_API_C( TQ3Status )
Q3Triangle_GetData (TQ3GeometryObject triangle,
TQ3TriangleData * triangleData);
EXTERN_API_C( TQ3Status )
Q3Triangle_EmptyData (TQ3TriangleData * triangleData);
EXTERN_API_C( TQ3Status )
Q3Triangle_GetVertexPosition (TQ3GeometryObject triangle,
unsigned long index,
TQ3Point3D * point);
EXTERN_API_C( TQ3Status )
Q3Triangle_SetVertexPosition (TQ3GeometryObject triangle,
unsigned long index,
const TQ3Point3D * point);
EXTERN_API_C( TQ3Status )
Q3Triangle_GetVertexAttributeSet (TQ3GeometryObject triangle,
unsigned long index,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3Triangle_SetVertexAttributeSet (TQ3GeometryObject triangle,
unsigned long index,
TQ3AttributeSet attributeSet);
****************************************************************************
* **
* TriGrid Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3TriGridData {
unsigned long numRows;
unsigned long numColumns;
TQ3Vertex3D * vertices;
TQ3AttributeSet * facetAttributeSet;
TQ3AttributeSet triGridAttributeSet;
};
typedef struct TQ3TriGridData TQ3TriGridData;
****************************************************************************
* **
* TriGrid Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3TriGrid_New (const TQ3TriGridData * triGridData);
EXTERN_API_C( TQ3Status )
Q3TriGrid_Submit (const TQ3TriGridData * triGridData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3TriGrid_SetData (TQ3GeometryObject triGrid,
const TQ3TriGridData * triGridData);
EXTERN_API_C( TQ3Status )
Q3TriGrid_GetData (TQ3GeometryObject triGrid,
TQ3TriGridData * triGridData);
EXTERN_API_C( TQ3Status )
Q3TriGrid_EmptyData (TQ3TriGridData * triGridData);
EXTERN_API_C( TQ3Status )
Q3TriGrid_GetVertexPosition (TQ3GeometryObject triGrid,
unsigned long rowIndex,
unsigned long columnIndex,
TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3TriGrid_SetVertexPosition (TQ3GeometryObject triGrid,
unsigned long rowIndex,
unsigned long columnIndex,
const TQ3Point3D * position);
EXTERN_API_C( TQ3Status )
Q3TriGrid_GetVertexAttributeSet (TQ3GeometryObject triGrid,
unsigned long rowIndex,
unsigned long columnIndex,
TQ3AttributeSet * attributeSet);
EXTERN_API_C( TQ3Status )
Q3TriGrid_SetVertexAttributeSet (TQ3GeometryObject triGrid,
unsigned long rowIndex,
unsigned long columnIndex,
TQ3AttributeSet attributeSet);
EXTERN_API_C( TQ3Status )
Q3TriGrid_GetFacetAttributeSet (TQ3GeometryObject triGrid,
unsigned long faceIndex,
TQ3AttributeSet * facetAttributeSet);
EXTERN_API_C( TQ3Status )
Q3TriGrid_SetFacetAttributeSet (TQ3GeometryObject triGrid,
unsigned long faceIndex,
TQ3AttributeSet facetAttributeSet);
****************************************************************************
* **
* TriMesh Data Structure Definitions **
* **
***************************************************************************
endif /* CALL_NOT_IN_CARBON */
struct TQ3TriMeshTriangleData {
unsigned long pointIndices[3];
};
typedef struct TQ3TriMeshTriangleData TQ3TriMeshTriangleData;
struct TQ3TriMeshEdgeData {
unsigned long pointIndices[2];
unsigned long triangleIndices[2];
};
typedef struct TQ3TriMeshEdgeData TQ3TriMeshEdgeData;
struct TQ3TriMeshAttributeData {
TQ3AttributeType attributeType; /* The type of attribute */
void * data; /* Pointer to the contiguous */
/* attribute data. */
char * attributeUseArray; /* This is only used with custom */
/* attributes */
};
typedef struct TQ3TriMeshAttributeData TQ3TriMeshAttributeData;
struct TQ3TriMeshData {
TQ3AttributeSet triMeshAttributeSet;
unsigned long numTriangles;
TQ3TriMeshTriangleData * triangles;
unsigned long numTriangleAttributeTypes;
TQ3TriMeshAttributeData * triangleAttributeTypes;
unsigned long numEdges;
TQ3TriMeshEdgeData * edges;
unsigned long numEdgeAttributeTypes;
TQ3TriMeshAttributeData * edgeAttributeTypes;
unsigned long numPoints;
TQ3Point3D * points;
unsigned long numVertexAttributeTypes;
TQ3TriMeshAttributeData * vertexAttributeTypes;
TQ3BoundingBox bBox;
};
typedef struct TQ3TriMeshData TQ3TriMeshData;
****************************************************************************
* **
* TriMesh Routines **
* **
***************************************************************************
if CALL_NOT_IN_CARBON
EXTERN_API_C( TQ3GeometryObject )
Q3TriMesh_New (const TQ3TriMeshData * triMeshData);
EXTERN_API_C( TQ3Status )
Q3TriMesh_Submit (const TQ3TriMeshData * triMeshData,
TQ3ViewObject view);
EXTERN_API_C( TQ3Status )
Q3TriMesh_SetData (TQ3GeometryObject triMesh,
const TQ3TriMeshData * triMeshData);
EXTERN_API_C( TQ3Status )
Q3TriMesh_GetData (TQ3GeometryObject triMesh,
TQ3TriMeshData * triMeshData);
EXTERN_API_C( TQ3Status )
Q3TriMesh_EmptyData (TQ3TriMeshData * triMeshData);
endif /* CALL_NOT_IN_CARBON */
if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __QD3DGEOMETRY__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__QD3DGEOMETRY__RESTORE_PACKED_ENUMS)
#pragma options(pack_enums)
endif
if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
endif
ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
endif
ifdef __cplusplus
}
endif
endif /* __QD3DGEOMETRY__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.