added cgrid for collision added quaternion class (not working yet) --HG-- branch : py3dutil
60 lines
1.8 KiB
C
60 lines
1.8 KiB
C
#include "misc.h"
|
|
|
|
/***********************************************************************/
|
|
/* FUNCTION: void Assert(int assertion, char* error) */
|
|
/**/
|
|
/* INPUTS: assertion should be a predicated that the programmer */
|
|
/* assumes to be true. If this assumption is not true the message */
|
|
/* error is printed and the program exits. */
|
|
/**/
|
|
/* OUTPUT: None. */
|
|
/**/
|
|
/* Modifies input: none */
|
|
/**/
|
|
/* Note: If DEBUG_ASSERT is not defined then assertions should not */
|
|
/* be in use as they will slow down the code. Therefore the */
|
|
/* compiler will complain if an assertion is used when */
|
|
/* DEBUG_ASSERT is undefined. */
|
|
/***********************************************************************/
|
|
|
|
|
|
void Assert(int assertion, char* error) {
|
|
if(!assertion) {
|
|
printf("Assertion Failed: %s\n",error);
|
|
exit(-1);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/***********************************************************************/
|
|
/* FUNCTION: SafeMalloc */
|
|
/**/
|
|
/* INPUTS: size is the size to malloc */
|
|
/**/
|
|
/* OUTPUT: returns pointer to allocated memory if succesful */
|
|
/**/
|
|
/* EFFECT: mallocs new memory. If malloc fails, prints error message */
|
|
/* and terminates program. */
|
|
/**/
|
|
/* Modifies Input: none */
|
|
/**/
|
|
/***********************************************************************/
|
|
|
|
void * SafeMalloc(size_t size) {
|
|
void * result;
|
|
|
|
if ( (result = malloc(size)) ) { /* assignment intentional */
|
|
return(result);
|
|
} else {
|
|
printf("memory overflow: malloc failed in SafeMalloc.");
|
|
printf(" Exiting Program.\n");
|
|
exit(-1);
|
|
return(0);
|
|
}
|
|
}
|
|
/* NullFunction does nothing it is included so that it can be passed */
|
|
/* as a function to RBTreeCreate when no other suitable function has */
|
|
/* been defined */
|
|
|
|
void NullFunction(void * junk) { ; }
|