libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/collision/Vcollide/include/VCol-old.h
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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines