99 hit_errInternal(__func__,
"Unsupported shape type",
"", __FILE__, __LINE__);
139 for (i=0; i<minDims; i++) {
170 for (i=0; i<minDims; i++) {
194 for (i=0; i<minDims; i++) {
218 for(dim=0;dim<
dims;dim++){
265 if( list.flagNames == HIT_SHAPE_NAMES_ARRAY ){
266 if(name >= list.nInvNames)
return -1;
267 return list.invNames[name];
271 if( list.flagNames == HIT_SHAPE_NAMES_ORDERED ){
272 if( name < 0 || name >= list.nNames )
return -1;
277 if( list.flagNames == HIT_SHAPE_NAMES_NOARRAY ){
280 for(i=0; i<list.nNames; i++){
281 if(list.names[i] == name)
return i;
295 if(list.flagNames == HIT_SHAPE_NAMES_ARRAY){
305 list->nNames = nelems;
312 for(i=0;i<nelems;i++){
315 list->flagNames = HIT_SHAPE_NAMES_ORDERED;
322 dst->nNames = src->nNames;
327 memcpy(dst->names, src->names, (
size_t) dst->nNames *
sizeof(
int) );
329 dst->flagNames = HIT_SHAPE_NAMES_ORDERED;
339 if(list->nNames == 0){
353 list->names[list->nNames-1] =
x;
357 list->flagNames = HIT_SHAPE_NAMES_NOARRAY;
364 list->flagNames = HIT_SHAPE_NAMES_ARRAY;
369 for(i=0; i<list->nNames; i++){
370 name_max =
hit_max(name_max,list->names[i]);
373 list->nInvNames = name_max;
381 for(i=0; i<name_max; i++){
382 list->invNames[i] = -1;
384 for(i=0; i<list->nNames; i++){
385 list->invNames[ list->names[i] ] = i;
void hit_nameListCreateInvNames(HitNameList *list)
HitShape hit_shapeBorder(HitShape shape, int dim, int position, int offset)
void hit_nameListClone(HitNameList *dst, HitNameList *src)
HitShape hit_shapeExpand(HitShape shape, int dims, int offset)
HitShape hit_shapeIntersect(HitShape sh1, HitShape sh2)
#define hit_shapeDimsSet(shape, value)
void hit_nameListAdd(HitNameList *list, int x)
int hit_nameListName2Index(HitNameList list, int name)
HitShape HIT_SIG_SHAPE_NULL
int hit_shapeCmp(HitShape sh1, HitShape sh2)
HitShape hit_shapeTileToArray(HitShape sh1, HitShape sh2)
void hit_nameListFree(HitNameList list)
HitSig hit_sigIntersect(HitSig s1, HitSig s2)
void hit_nameListCreate(HitNameList *list, int nelems)
void hit_bShapeFree(HitShape shape)
#define hit_shapeDims(shape)
Hitmap functions to allocate memory.
#define hit_malloc(ptr, type, nmemb)
HitShape hit_shapeSubset(HitShape sh1, HitShape sh2)
HitShape HIT_CSR_SHAPE_NULL
void hit_cShapeFree(HitShape shape)
HitNameList HIT_NAMELIST_NULL
HitShape HIT_BITMAP_SHAPE_NULL
#define hit_realloc(ptr, type, nmemb)
HitShape hit_shapeDimExpand(HitShape shape, int dim, int position, int offset)
#define hit_shapeSig(shape, dim)
void hit_shapeFree(HitShape s)
#define hit_errInternal(routine, text, extraParam, file, numLine)
#define hit_sigTileToArray(sig, ind)
#define hit_sigCmp(s1, s2)
void dumpShape(HitShape sh)
HitSigShape HIT_SIG_SHAPE_WHOLE