libmove3d
3.13.0
|
00001 /************************************************************************\ 00002 00003 Copyright 1997 The University of North Carolina at Chapel Hill. 00004 All Rights Reserved. 00005 00006 Permission to use, copy, modify and distribute this software 00007 and its documentation for educational, research and non-profit 00008 purposes, without fee, and without a written agreement is 00009 hereby granted, provided that the above copyright notice and 00010 the following three paragraphs appear in all copies. 00011 00012 IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL 00013 HILL BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, 00014 INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, 00015 ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, 00016 EVEN IF THE UNIVERSITY OF NORTH CAROLINA HAVE BEEN ADVISED OF 00017 THE POSSIBILITY OF SUCH DAMAGES. 00018 00019 00020 Permission to use, copy, modify and distribute this software 00021 and its documentation for educational, research and non-profit 00022 purposes, without fee, and without a written agreement is 00023 hereby granted, provided that the above copyright notice and 00024 the following three paragraphs appear in all copies. 00025 00026 THE UNIVERSITY OF NORTH CAROLINA SPECIFICALLY DISCLAIM ANY 00027 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00028 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00029 PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" 00030 BASIS, AND THE UNIVERSITY OF NORTH CAROLINA HAS NO OBLIGATION 00031 TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR 00032 MODIFICATIONS. 00033 00034 00035 --------------------------------- 00036 |Please send all BUG REPORTS to: | 00037 | | 00038 | geom@cs.unc.edu | 00039 | | 00040 --------------------------------- 00041 00042 00043 The authors may be contacted via: 00044 00045 US Mail: A. Pattekar/J. Cohen/T. Hudson/S. Gottschalk/M. Lin/D. Manocha 00046 Department of Computer Science 00047 Sitterson Hall, CB #3175 00048 University of N. Carolina 00049 Chapel Hill, NC 27599-3175 00050 00051 Phone: (919)962-1749 00052 00053 EMail: geom@cs.unc.edu 00054 00055 \************************************************************************/ 00056 00057 /************************************************************************\ 00058 Filename: VCol.h 00059 -- 00060 Description: This file declares the plain C wrappers for the C++ 00061 functions from the VCollode API. 00062 00063 \************************************************************************/ 00064 00065 00066 #ifndef VCOL_h 00067 #define VCOL_h 00068 00069 /*error codes returned by VCollide API.*/ 00070 #define VC_ERR_INVALID_ID -4 /*invalid id was passed to the 00071 *routine.*/ 00072 #define VC_ERR_EMPTY_OBJECT -3 /*EndObject called without adding 00073 *adding any triangles.*/ 00074 #define VC_ERR_CALL_OUT_OF_SEQUENCE -2 /*calls out of sequence.*/ 00075 #define VC_ERR -1 /*some other error.*/ 00076 #define VC_OK 1 /*No error.*/ 00077 00078 00079 00080 /************************************************************************ 00081 Struct: VCReportType 00082 -- 00083 Description: Used for reporting collisions. 00084 00085 \************************************************************************/ 00086 00087 /*multiply defined in files VInternal.C and VCollide.H*/ 00088 #ifndef _VCREPORTTYPE 00089 #define _VCREPORTTYPE 00090 typedef struct VCReportType 00091 { 00092 int id1, id2; 00093 } VCReportType; 00094 #endif 00095 00096 /*Plain C wrappers for the c++ routines*/ 00097 #ifdef __cplusplus 00098 extern "C" 00099 { 00100 #endif 00101 00102 void *vcOpen(void); 00103 void vcClose(void *vc_handle); 00104 int vcNewObject(void *vc_handle, int *id); 00105 int vcAddTri(void *vc_handle, double v1[], double v2[], double v3[]); 00106 int vcEndObject(void *vc_handle); 00107 int vcUpdateTrans(void *vc_handle, int id, double t[][4]); 00108 int vcActivateObject(void *vc_handle, int id); 00109 int vcDeactivateObject(void *vc_handle, int id); 00110 int vcActivatePair(void *vc_handle, int id1, int id2); 00111 int vcDeactivatePair(void *vc_handle, int id1, int id2); 00112 int vcDeleteObject(void *vc_handle, int id); 00113 int vcCollide(void *vc_handle); 00114 int vcReport(void *vc_handle, int size, VCReportType *vcrep); 00115 00116 00117 #ifdef __cplusplus 00118 }; 00119 #endif 00120 00121 #endif