home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- Name: apbndry.h, AME_APLIB_APHEAD_apbndry.h
-
- Description: AME2/API Object's boundary data type definitions.
-
- Author: AME Group
- Autodesk, Inc.
-
- (C) Copyright 1988-1992 by Autodesk, Inc.
- *******************************************************************************
- * *
- * This program is copyrighted by Autodesk, Inc. and is licensed *
- * to you under the following conditions. You may not distribute *
- * or publish the source code of this program in any form. You *
- * may incorporate this code in object form in derivative works *
- * provided such derivative works are (i.) are designed and *
- * intended to work solely with Autodesk, Inc. products, and *
- * (ii.) contain Autodesk's copyright notice "(C) Copyright *
- * 1988-1992 by Autodesk, Inc." *
- * *
- * AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. *
- * AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MER- *
- * CHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. *
- * DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE *
- * UNINTERRUPTED OR ERROR FREE. *
- * *
- *******************************************************************************
-
- Notes:
-
-
- ******************************************************************************/
-
- /* Surface Types */
-
- typedef enum {
- AP_PLANAR = 0,
- AP_CYLINDRICAL,
- AP_CONICAL,
- AP_SPHERICAL,
- AP_TOROIDAL,
- AP_SURFTYPE4BYTES = 65537 /* Dummy value to ensure 4 bytes memory spaces */
- } ap_Surftype;
-
- /* Surface Parameters */
-
- struct ap_sphsurf {
- ap_Real r;
- }; /* Spherical */
-
- struct ap_consurf {
- ap_Real rx, ry;
- }; /* Conical */
-
- struct ap_cylsurf {
- ap_Real rx, ry;
- }; /*Cylindrical */
-
- struct ap_plasurf {
- ads_point norm;
- }; /* Planar */
-
- struct ap_torsurf {
- ap_Real rmaj, rmin;
- }; /* Toroidal */
-
- /* Face Information */
-
- typedef struct ap_faceinfo {
- ap_Surftype stype;
- ap_Real perimeter; /* Sum of Edges */
- ap_Trans3d face_rm; /* Current Rigid Motion */
- union {
- struct ap_sphsurf sph;
- struct ap_consurf con;
- struct ap_cylsurf cyl;
- struct ap_torsurf tor;
- struct ap_plasurf pla;
- } surf;
- } ap_Faceinfo;
-
- /* Face List Structure */
-
- typedef struct ap_facelist {
- ap_Featid face_id; /* The Unique Face Id of the Surface */
- ap_Faceinfo *face; /* Information of The Face */
- struct ap_facelist *facenext; /* Pointer to the Next Face */
- } ap_Facelist;
-
- /* Curve Types */
-
- typedef enum {
- AP_LINE = 0,
- AP_ELLIPSE,
- AP_HYPERBOLA,
- AP_PARABOLA,
- AP_CYLCYL,
- AP_CONCON,
- AP_CURVETYPE4BYTES = 65537 /* Dummy value to ensure 4 bytes memory spaces */
- } ap_Curvetype;
-
- /* Curve Parameters */
-
- struct ap_ellseg {
- ap_Real ru, rv;
- }; /* Ellipse */
-
- struct ap_parseg {
- ap_Real fourp;
- }; /* Parabola */
-
- struct ap_hypseg {
- ap_Real a, b;
- }; /* Hyperbola */
-
- struct ap_ccseg
- {
- ap_Real a, b, c, d, e, f, g, h, i, radx, rady, sign;
- }; /* Cylinder Cylinder Intersection */
-
- struct ap_kkseg
- {
- ap_Real a, b, c, d, e, f, g, h, i, alpha, beta, sign;
- }; /* Cone Cone Intersection */
-
- /* Edge Information */
-
- typedef struct ap_edgeinfo {
- ap_Curvetype ctype;
- ap_Real edge_len; /* Length of the Edge */
- ap_Real s_parm, e_parm; /* Start and End Parameters t0, t1 */
- ap_Trans3d edge_rm; /* Current Rigid Motion */
- ads_point s_pt, e_pt; /* End Points of the Edge */
- union {
- struct ap_ellseg ell;
- struct ap_parseg par;
- struct ap_hypseg hyp;
- struct ap_ccseg cce;
- struct ap_kkseg kke;
- } curve;
- } ap_Edgeinfo;
-
- /* Edge List Structure */
-
- typedef struct ap_edgelist {
- ap_Featid edge_id; /* Unique Edge ID for a Edge */
- ap_Edgeinfo *edge; /* Edge Information of the Edge */
- struct ap_edgelist *edgenext; /* Pointer to the Next Edge */
- } ap_Edgelist;
-
- /* Point and Edge Classification */
-
- typedef enum {
- AP_FAILED,
- AP_OFFOBJECT,
- AP_ONOBJECT,
- AP_INOBJECT
- } ap_Class;
-
- typedef struct ap_edgeseg {
- ap_Class edge_class;
- ap_Real s_parm;
- ap_Real e_parm;
- } ap_Edgeseg;
-
- typedef struct ap_seglist {
- ap_Edgeseg seg;
- struct ap_seglist *segnext;
- } ap_Seglist;
-
- /* Parameter Structure */
-
- typedef struct ap_param {
- ap_Real param1;
- ap_Real param2;
- } ap_Param;
-
-
- /* EOF */
-
-
-
-
-
-