element_t* TMelement_alloc (coordinate_t* coordinates, long numCoordinate) { element_t* elementPtr; elementPtr = (element_t*)xmalloc(sizeof(element_t)); if (elementPtr) { calculateCircumCircle(elementPtr); } return elementPtr; }
/* ============================================================================= * TMelement_alloc * * Contains a copy of input arg 'coordinates' * ============================================================================= */ element_t* TMelement_alloc (TM_ARGDECL coordinate_t* coordinates, long numCoordinate) { element_t* elementPtr = NULL; elementPtr = (element_t*)TM_MALLOC(sizeof(element_t)); if (elementPtr) { long i; for (i = 0; i < numCoordinate; i++) { elementPtr->coordinates[i] = coordinates[i]; } elementPtr->numCoordinate = numCoordinate; minimizeCoordinates(elementPtr); checkAngles(elementPtr); calculateCircumCircle(elementPtr); initEdges(elementPtr, coordinates, numCoordinate); elementPtr->neighborListPtr = TMLIST_ALLOC(&element_listcompare); assert(elementPtr->neighborListPtr); elementPtr->isGarbage = false; elementPtr->isReferenced = false; } return elementPtr; }