00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef __ShpShape_h
00043 #define __ShpShape_h
00044
00045 #ifndef EXTERN
00046 #ifdef _DVS_
00047 #define EXTERN
00048 #else
00049 #define EXTERN extern
00050 #endif
00051 #endif
00052
00053 #ifndef __int_id
00054 #define __int_id
00055 typedef int Id;
00056 #endif
00057 #ifndef __double_vector
00058 #define __double_vector
00059 typedef real vector[4];
00060 #endif
00061 #ifndef __struct_solid
00062 #define __struct_solid
00063 typedef struct solid STYPE;
00064 #endif
00065 #ifndef __struct_face
00066 #define __struct_face
00067 typedef struct face FTYPE;
00068 #endif
00069 #ifndef __struct_loop
00070 #define __struct_loop
00071 typedef struct loop LTYPE;
00072 #endif
00073 #ifndef __struct_edge
00074 #define __struct_edge
00075 typedef struct edge ETYPE;
00076 #endif
00077 #ifndef __struct_halfedge
00078 #define __struct_halfedge
00079 typedef struct halfedge HTYPE;
00080 #endif
00081 #ifndef __struct_vertex
00082 #define __struct_vertex
00083 typedef struct vertex VTYPE;
00084 #endif
00085
00086 typedef struct
00087 {
00088 real x;
00089 real y;
00090 } XY;
00091
00092 EXTERN unsigned char workbuf[2000];
00093
00094
00095 void MSD_execNameMakeCylinder(void);
00096 void MSD_highNameMakeCylinder(char *name, int n, real r, real h);
00097 void MSD_execMakeCylinder(void);
00098 Id MSD_highMakeCylinder(int n, real r, real h);
00099 void MSD_execNameMakeCone(void);
00100 void MSD_highNameMakeCone(char *name, int n, real r, real h);
00101 void MSD_execMakeCone(void);
00102 Id MSD_highMakeCone(int n, real r, real h);
00103 SPTYPE MSD_lowMakeCylinder(Id sn, real rad, real h, int n);
00104 SPTYPE MSD_lowMakeCylinder0(Id sn, real rad, int n);
00105 SPTYPE MSD_lowMakeCone(Id sn, real rad, real h, int n);
00106 void MSD_lowRot90Dg(SPTYPE s);
00107
00108
00109 void MSD_lowSetNormal(SPTYPE optr, int op);
00110 void MSD_lowSetEdgeAngle(SPTYPE optr);
00111
00112
00113 void MSD_execNameMakePrism(void);
00114
00115 void MSD_highNameMakePrism(char *, int, real, XY *);
00116 void MSD_execMakePrism(void);
00117
00118 Id MSD_highMakePrism(int, real, XY *);
00119 void MSD_execNameMakePyramid(void);
00120
00121 void MSD_highNameMakePyramid(char *, int, real, XY *);
00122 void MSD_execMakePyramid(void);
00123
00124 Id MSD_highMakePyramid(int, real, XY *);
00125 char setvtpi(XY **, int);
00126
00127
00128 void MSD_execNameMakeRevolve(void);
00129 void MSD_highNameMakeRevolve(char *, int, int, XY *);
00130 void MSD_execMakeRevolve(void);
00131 Id MSD_highMakeRevolve(int, int, XY *);
00132
00133
00134 SPTYPE MSD_lowMakePrism0(Id sn, XY *listvtx, int n, int pln);
00135 SPTYPE MSD_lowMakePolygon(Id sn, XY *listvtx, int n, int pln);
00136
00137
00138 SPTYPE MSD_lowMakePrism(Id sn, XY *listvtx, real h, int n);
00139 int MSD_lowMakeSweep(FPTYPE fac, real dx, real dy, real dz);
00140
00141
00142 SPTYPE MSD_lowMakePyramid(Id sn, XY *listvtx, real h, int n);
00143 void MSD_lowSetFaceToPoint(FPTYPE fptr, real x, real y, real z);
00144
00145
00146 SPTYPE MSD_lowMakeRevolve(Id sn, XY *listvtx, int m, int n);
00147 char MSD_lowMakeRotationalSweep(SPTYPE s, int nfaces, int axs, int pln, vector vect);
00148 void MSD_lowMakeFaceToPoint(FPTYPE f);
00149 int MSD_lowMakeOpenRSweep(SPTYPE s, int pln);
00150 HPTYPE MSD_lowTouchAxis(HPTYPE eptr, int pln);
00151 HPTYPE MSD_lowTouchWire(HPTYPE eptr, int *cut, int pln);
00152
00153
00154 void MSD_execNameMakeSphere(void);
00155 void MSD_highNameMakeSphere(char *name, int n, real r);
00156 void MSD_execMakeSphere(void);
00157 Id MSD_highMakeSphere(int n, real r);
00158 SPTYPE MSD_lowMakeSphere(Id sn, real r, int nver, int nhor);
00159 char MSD_lowMakeArc(Id s, Id f, Id v, real cx, real cz, real rad, real \
00160 h, real phi1, real phi2, int n);
00161 SPTYPE MSD_lowMakeCircle(Id sn, real cx, real cz, real rad, real h, int n);
00162
00163
00164 void MSD_execNameMakeSweep(void);
00165
00166
00167 void MSD_execNameMakeTorus(void);
00168 void MSD_highNameMakeTorus(char *name, int n, real r0, real r1);
00169 void MSD_execMakeTorus(void);
00170 Id MSD_highMakeTorus(int n, real r0, real r1);
00171 SPTYPE MSD_lowMakeTorus(Id sn, real r1, real r2, int nf1, int nf2);
00172
00173
00174 void MSD_execNameMakeCube(void);
00175 void MSD_highNameMakeCube(char *name, real a, real b, real c);
00176 void MSD_execMakeCube(void);
00177 Id MSD_highMakeCube(real a, real b, real c);
00178 SPTYPE MSD_lowMakeCube(Id sn, real dx, real dy, real dz);
00179 SPTYPE MSD_lowMakeCube0(Id sn, real dx, real dy);
00180
00181 #endif