QD3DGeometry.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:91k
- /*
- 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__ */