CTracker *TrackerNew(PyMOLGlobals * G) { OOAlloc(G, CTracker); UtilZeroMem(I, sizeof(CTracker)); I->next_id = 1; I->next_free_info = 0; I->n_info = 0; I->next_free_member = 0; I->n_member = 0; I->info = VLACalloc(TrackerInfo, 1); I->member = VLACalloc(TrackerMember, 1); I->id2info = OVOneToOne_New(G->Context->heap); I->hash2member = OVOneToOne_New(G->Context->heap); return (I); }
/*========================================================================*/ ObjectCallback *ObjectCallbackNew(PyMOLGlobals * G) { OOAlloc(G, ObjectCallback); ObjectInit(G, (CObject *) I); I->State = VLACalloc(ObjectCallbackState, 10); /* autozero */ I->NState = 0; I->Obj.type = cObjectCallback; I->Obj.fFree = (void (*)(CObject *)) ObjectCallbackFree; I->Obj.fUpdate = (void (*)(CObject *)) ObjectCallbackUpdate; I->Obj.fRender = (void (*)(CObject *, RenderInfo *)) ObjectCallbackRender; I->Obj.fGetNFrame = (int (*)(CObject *)) ObjectCallbackGetNStates; return (I); }